Sayfayı Yazdır | Pencereyi Kapat

Döngüyü düzgün çalıştıramıyorum

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1205
Tarih: 07 Ekim 2025 Saat 23:02
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Döngüyü düzgün çalıştıramıyorum
Mesajı Yazan: kaanl0
Konu: Döngüyü düzgün çalıştıramıyorum
Mesaj Tarihi: 07 Ekim 2025 Saat 18:10
Merhaba hocam üzerinde çalıştığım projede bir problem yaşıyorum karışıklığın önüne geçmek sadeleştirip sadece problemi size anlatabileceğim kısımları size atıyorum  Sorunum ise homepage'de 4 tane isim var bu isimleri her döngüde sırayla uPlayer isimli unitte yazdırmak istiyorum 1. ismi başarılı bir şekilde yazdırıyor sonra tekrardan uPlayer unitine gelince 2. ismide yazdırıyor fakat 3. ve 4. ismi asla alamıyorum 

------------------Ana Kod----------

uses 
homepage;
{
try
Clomosy.rununit('homepage');

except
ShowMessage('General Error '+'Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
}
}

---------------------'homepage' isimli unit-----------------

var
MainForm: TclForm;
listpnl:TclProPanel;
pname1,pname2,pname3,pname4:TClProLabel;
startbtn:TClProButton;





void listpnlV
  {
  listpnl = mainform.AddNewPropanel(mainform,'listpnl');
  listpnl.Align = alClient;
  listpnl.Margins.Bottom = 390;
  listpnl.Margins.Top = 20;
  listpnl.Margins.Right = 30;
  listpnl.Margins.Left = 23;
  listpnl.clProSettings.ColCount = 1;
  listpnl.clProSettings.ItemHeight = 100;
  listpnl.clProSettings.ItemSpace = 10;
  listpnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFCFF');
  listpnl.clProSettings.BorderColor = clAlphaColor.clHexToColor('#524c4c');
  listpnl.clProSettings.BorderWidth = 5;
  listpnl.clProSettings.RoundHeight = 5;
  listpnl.clProSettings.RoundWidth =3;
  listpnl.SetclProSettings(listpnl.clProSettings);
  
  
  pname1 = mainform.AddNewProLabel(listpnl, 'pname1','Kaan');
  pname1.Align = alMostTop;
  pname1.Width = 300;
  pname1.Height = 55;
  pname1.Margins.Left = 150;
  pname1.margins.top = 20;
  pname1.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  pname1.clProSettings.FontSize =28;
  pname1.clProSettings.TextSettings.Font.Style = [fsItalic];
  pname1.SetclProSettings(pname1.clProSettings) 
  
  pname2 = mainform.AddNewProLabel(listpnl, 'pname2','Eren');
  pname2.Align = alTop;
  pname2.Width = 300;
  pname2.Height = 55;
  pname2.Margins.Left = 150;
  pname2.margins.top = 30;
  pname2.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  pname2.clProSettings.FontSize =28;
  pname2.clProSettings.TextSettings.Font.Style = [fsItalic];
  pname2.SetclProSettings(pname2.clProSettings)   

  pname3 = mainform.AddNewProLabel(listpnl, 'pname3','Sülo');
  pname3.Align = alTop;
  pname3.Width = 300;
  pname3.Height = 55;
  pname3.Margins.Left = 150;
  pname3.margins.top = 30;
  pname3.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  pname3.clProSettings.FontSize =28;
  pname3.clProSettings.TextSettings.Font.Style = [fsItalic];
  pname3.SetclProSettings(pname3.clProSettings)   
  
  pname4 = mainform.AddNewProLabel(listpnl, 'pname4','Samet');
  pname4.Align = alTop;
  pname4.Width = 300;
  pname4.Height = 55;
  pname4.Margins.Left = 150;
  pname4.margins.top = 30;
  pname4.clProSettings.FontColor = clAlphaColor.clHexToColor('#000000');
  pname4.clProSettings.FontSize =28;
  pname4.clProSettings.TextSettings.Font.Style = [fsItalic];
  pname4.SetclProSettings(pname4.clProSettings)   
   
  
  
}




  

void startbtnV
  {
  startbtn = mainform.AddNewProButton(mainform,'startbtn','Oyunu Başlat');
  startbtn.Align = alCenter;
  startbtn.Width = 250;
  startbtn.Height = 100;
  startbtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff');
  startbtn.clProSettings.FontSize = 24;
  startbtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#000000');
  startbtn.clProSettings.BorderWidth = 2;
  startbtn.clProSettings.RoundWidth = 50;
  startbtn.clProSettings.RoundHeight = 50;
  startbtn.Margins.top= 350;
  startbtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#081368');
  //startbtn.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing
  //startbtn.clProSettings.FontHorzAlign = palCenter;
  startbtn.clProSettings.TextSettings.Font.Style = [fsBold];
  //startbtn.clProSettings.IsFill = True; 
  startbtn.SetclProSettings(startbtn.clProSettings);
  mainform.AddNewEvent(startbtn,tbeOnClick,'startgameV');
}






void startgameV
  {
   Clomosy.RunUnit('uPlayer');
    
  }


{
  mainform = TclForm.Create(Self);
  listpnlV;
  startbtnV;
  mainform.FormWaiting.Visible = False;
  mainform.BtnFormMenu.Visible = False;
  mainform.BtnGoBack.Visible=False;
  mainform.Run;
}


--------------'uPlayer' isimli unit--------------------

uses homepage;
var
mainform2:TclForm;
lb1,nameplayer:TClProLabel;
okbtn:TClProButton;
tempstring: string;


void lb1V
  {
  lb1= mainform2.AddNewProLabel(mainform2, 'lb1', 'Oyuncu Sırası: ');
  //lb1.Align = alCenter;
  lb1.Width = 440;
  lb1.Height = 50;
  lb1.margins.bottom=600;
  lb1.margins.left=200;
  lb1.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFD700');
  lb1.clProSettings.FontSize = 38;
  //lb1.clProSettings.FontVertAlign = palcenter;
  //lb1.clProSettings.FontHorzAlign = palLeading;
  lb1.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
  //lb1.clProSettings.IsFill = True; 
  //lb1.clProSettings.IsRound = True;
  lb1.SetclProSettings(lb1.clProSettings);
}
void nameplayerV  
  {
  nameplayer= mainform2.AddNewProLabel(mainform2, 'nameplayer', '');
  nameplayer.Align = alCenter;
  nameplayer.Width=Length(pname1.text)*25;
  nameplayer.Height = 50;
  nameplayer.margins.bottom=400;
  nameplayer.clProSettings.FontColor = clAlphaColor.clHexToColor('#35b673');
  nameplayer.clProSettings.FontSize = 38;
  nameplayer.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
  nameplayer.SetclProSettings(nameplayer.clProSettings);
  //nameplayer.Width = 130;
  //nameplayer.margins.left=80;
  //nameplayer.clProSettings.FontVertAlign = palcenter;
  //nameplayer.clProSettings.FontHorzAlign = palLeading;
  //nameplayer.clProSettings.IsFill = True; 
  //nameplayer.clProSettings.IsRound = True;
}  
void okbtnV
  {
  okbtn= mainform2.AddNewProButton(mainform2, 'okbtn', 'Tamam');
  okbtn.Align = alCenter;
  okbtn.margins.bottom=210;
  okbtn.Width = 200;
  okbtn.Height = 70;
  okbtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFD700');
  okbtn.clProSettings.FontSize = 30;
  okbtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#DAA520');
  okbtn.clProSettings.BorderWidth = 5;
  okbtn.clProSettings.RoundWidth = 15;
  okbtn.clProSettings.RoundHeight = 15;
  okbtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#2C7E7E');
  mainform2.AddNewEvent(okbtn,tbeOnClick,'WordButtonV');
  okbtn.clProSettings.TextSettings.Font.Style = [fsBold,fsItalic];
  okbtn.SetclProSettings(okbtn.clProSettings);
  //okbtn.clProSettings.IsFill = True; 
  //okbtn.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing
  //okbtn.clProSettings.FontHorzAlign = palCenter;
}

void playerturn0V
  {
   if (nameplayer.text==''){
    tempstring = homepage.pname1.Text;
    nameplayer.Text = tempstring;
}
}
void playerTurn
 {
  
   if(nameplayer.text==homepage.pname1.Text){
    tempstring = homepage.pname2.Text;
    //ShowMessage(tempstring);
  }else if (tempstring==nameplayer.text){
    tempstring = homepage.pname3.Text;
  }else if (tempstring==nameplayer.text){
    tempstring = homepage.pname4.Text;
  }else if (tempstring==nameplayer.text){
    tempstring = homepage.pname1.Text;
  }else ShowMessage('Çalışmadı');
  nameplayer.Text = tempstring;
  //ShowMessage('nameplayer:'+nameplayer.text + 'player turn çalıştı');
}
void WordButtonV
  {
Clomosy.RunUnit('uYourWord');
}


{
mainform2 = TclForm.Create(Self);
lb1V;
nameplayerV;
okbtnV;

playerturn0V;
//playerTurn;

mainform2.run;
}

-------------------'uYourWord' isimli unit----------------------- 


uses uPlayer;
var
mainform3:TclForm;
addwordbtn,okbtn,guessbtn:TClProButton;

void okbtnV
 { 
 Clomosy.RunUnit('uPlayer');
 uPlayer.playerTurn;
}

void addwordbtnV
 {
  okbtn= mainform3.AddNewProButton(mainform3, 'okbtn', 'Geri Dön');
  okbtn.Align = alCenter;
  okbtn.Width = 175;
  okbtn.Height = 60;
  okbtn.margins.top=25;
  okbtn.margins.left=30;
  okbtn.margins.right=30;
  okbtn.clProSettings.FontSize = 21;
  okbtn.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#099ea4');
  okbtn.clProSettings.TextSettings.Font.Style = [fsBold];
  okbtn.clProSettings.BorderColor = clAlphaColor.clHexToColor('#312626');
  okbtn.clProSettings.RoundHeight = 15;
  okbtn.clProSettings.RoundWidth = 15;
  okbtn.clProSettings.BorderWidth = 2;
  okbtn.clProSettings.FontColor = clAlphaColor.clHexToColor('#e6efef');
  mainform3.AddNewEvent(okbtn,tbeOnClick,'okbtnV')
  //okbtn.clProSettings.IsFill = True; 
  //okbtn.clProSettings.IsRound = True;
  okbtn.SetclProSettings(okbtn.clProSettings); 
  
}


{
  mainform3=TclForm.Create(self);
  addwordbtnV;
  mainform3.run;
}



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 07 Ekim 2025 Saat 18:28
playerTurn fonksiyonunda tempstring değişkeni sürekli güncelleniyor ama nameplayer.text ile karşılaştırma yapılıyor. Bu yüzden 3. ve 4. isimler asla gelmiyor.

  currentPlayerIndex: Integer; değişken tanılayıp 

  {
    if (nameplayer.text == '') {
      currentPlayerIndex = 1; // İlk oyuncu
      tempstring = homepage.pname1.Text;
      nameplayer.Text = tempstring;
    }
  }
}

void playerTurn {
  {
    
    currentPlayerIndex = currentPlayerIndex + 1;
    
    
    if (currentPlayerIndex > 4) {
      currentPlayerIndex = 1;
    }
    
   
    case currentPlayerIndex of {
      1: tempstring = homepage.pname1.Text;
      2: tempstring = homepage.pname2.Text;
      3: tempstring = homepage.pname3.Text;
      4: tempstring = homepage.pname4.Text;
    }
    
    nameplayer.Text = tempstring;
  }
}




Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net