![]() |
Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
Döngüyü düzgün çalıştıramıyorum |
Yanıt Yaz ![]() |
Yazar | |
kaanl0 ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 14 |
![]() ![]() ![]() ![]() ![]() Gönderim Zamanı: Dün 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; } |
|
![]() |
|
Emr.Erkmn ![]() Moderatör ![]() Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 325 |
![]() Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() |
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; } } |
|
![]() |
|
kaanl0 ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 14 |
![]() ![]() ![]() ![]() ![]() |
Tekrardan merhaba cevap verdiğiniz için teşekkür ederim verdiğiniz kodu aşağıdaki gibi kullandım currentPlayerIndex isimli değişkeni tanımladım fakat problem hala devam ediyor.
------------------------------ void playerturn0V { if (nameplayer.text == '') { currentPlayerIndex = 1; // İlk oyuncu tempstring = homepage.pname1.Text; nameplayer.Text = tempstring; } } void playerTurn(currentPlayerIndex:Integer) { //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; } |
|
![]() |
|
kaanl0 ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 14 |
![]() ![]() ![]() ![]() ![]() |
11. satır yorum satırı kalmış atarken düzeltmeyi unutmuşum
|
|
![]() |
|
Emr.Erkmn ![]() Moderatör ![]() Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 325 |
![]() Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() |
Kaan öncelikle senden istediğim, birimler de formları açarken gizlemen, her birim açıldığın da ve geri döndüğün de formlar arka planda açık kalmaya devam ediyor.
Anakod ___________________________ uses homepage; var currentPlayerIndex: Integer; { try currentPlayerIndex = 0; Clomosy.rununit('homepage'); except ShowMessage('General Error '+'Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } }
Uplayer ____________________________ uses homepage; var mainform2: TclForm; lb1, nameplayer: TClProLabel; okbtn: TClProButton; tempstring: String; void lb1V { { lb1 = mainform2.AddNewProLabel(mainform2, 'lb1', 'Oyuncu Sırası: '); 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.TextSettings.Font.Style = [fsBold, fsItalic]; 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); } } 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); } } void playerturn0V { { // Sıradaki oyuncuya geç currentPlayerIndex = currentPlayerIndex + 1; // 4 oyuncu döngüsü if (currentPlayerIndex > 4) { currentPlayerIndex = 1; } // Oyuncu ismini al 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; } } void WordButtonV { { Clomosy.RunUnit('uYourWord'); } } { mainform2 = TclForm.Create(Self); lb1V; nameplayerV; okbtnV; playerturn0V; // Her seferinde sıradaki oyuncuyu göster mainform2.run; } uYourWord ______________________________________ uses uPlayer; var mainform3: TclForm; addwordbtn, okbtn, guessbtn: TClProButton; void okbtnV { { Clomosy.RunUnit('uPlayer'); } } 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.SetclProSettings(okbtn.clProSettings); } } { mainform3 = TclForm.Create(Self); addwordbtnV; mainform3.run; } homepage ________________________________ var MainForm: TclForm; listpnl: TclProPanel; pname1, pname2, pname3, pname4: TClProLabel; startbtn: TClProButton; currentPlayerIndex: Integer 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.TextSettings.Font.Style = [fsBold]; startbtn.SetclProSettings(startbtn.clProSettings); mainform.AddNewEvent(startbtn, tbeOnClick, 'startgameV'); } } void startgameV { { currentPlayerIndex = 0; // İlk oyuncu için sıfırla Clomosy.RunUnit('uPlayer'); } } { mainform = TclForm.Create(Self); listpnlV; startbtnV; mainform.FormWaiting.Visible = False; mainform.BtnFormMenu.Visible = False; mainform.BtnGoBack.Visible = False; mainform.Run; } Düzenleyen Emr.Erkmn - 8 Saat 6 Dakika Önce Saat 13:16 |
|
![]() |
|
Emr.Erkmn ![]() Moderatör ![]() Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 325 |
![]() Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() |
Hata sebebi de,
Her uPlayer unite dönüldüğün de form yeniden oluşturuluyor ve currentPlayerIndex değişkeni sıfırlanıyor bu yüzden aynı oyuncu sürekli dönüyor. Anakod da global değişken tanımlayıp, diğer tüm birimler de kullandık, |
|
![]() |
|
kaanl0 ![]() Yeni Üye ![]() ![]() Kayıt Tarihi: 16 Eylül 2025 Konum: konya Durum: Aktif Değil Puanlar: 14 |
![]() ![]() ![]() ![]() ![]() |
Teşekkürler kod başarılı bir şekilde çalışıyor fakat bir sorum olacaktı ana koddaki global değişken gibi tanımlama kısmını tam anlamıyla anlayamadım.
Homepage kısmında ana koddaki değişkenin değerini almadığını fark ettim bu gibi durumlarda ana kodda değişken belirlemek ne gibi avantaj sağlayabilir. Ana koddan currentPlayerIndex'i 90 olarak yollamama rağmen 0 çıktısını aldım. --------anakod---------- uses homepage; var currentPlayerIndex: Integer; { try currentPlayerIndex = 90; Clomosy.rununit('homepage'); except ShowMessage('General Error '+'Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } } --------homepage unitinden bir kısım-------------------- void startgameV { { ShowMessage(IntToStr(currentPlayerIndex)); currentPlayerIndex = 0; // İlk oyuncu için sıfırla Clomosy.RunUnit('uPlayer'); } } |
|
![]() |
|
Emr.Erkmn ![]() Moderatör ![]() Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 325 |
![]() Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
![]() ![]() ![]() ![]() |
*Anakodda ki global değişken sorun için, aslında tanımlamasak da herhangi bir hata veya yanlışlık yapmayız, sadece varsayılan değer olarak tanımladım ve 0 atadım. Anakodda ki değişkenleri diğer birimler arasında göremeyiz, her birim de kendi değişkenlerimizi tanımlamamız gerekiyor, birimler arası veri paylaşımı için fonksiyon kullanabiliriz ya da https://www.docs.clomosy.com/index.php?title=Global_Variables kullanabiliriz. Hepsi için farklı kullanımlarını aşağıda bırakıcam. Umarım kafan çok fazla karışmamıştır. *Ana koddan currentPlayerIndex'i 90 olarak yollamama rağmen 0 çıktısını aldım. Bu sorun için de şöyle bir yol izleyebiliriz. 1--------HomePage Unit var MainForm: TclForm; listpnl: TclProPanel; pname1, pname2, pname3, pname4: TClProLabel; startbtn: TClProButton; currentPlayerIndex: Integer; void startgameV { { currentPlayerIndex = 90; // Burada değer ver ShowMessage(IntToStr(currentPlayerIndex)); // 90 gösterecek currentPlayerIndex = 0; // İlk oyuncu için sıfırla Clomosy.RunUnit('uPlayer'); } } 2----- Clomosy Global Variables, -----Anakod------ uses homepage; { try { Clomosy.GlobalVariableInteger = 90; // Global değişkene değer ata Clomosy.rununit('homepage'); } except { ShowMessage('General Error '+'Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage); } } var MainForm: TclForm; listpnl: TclProPanel; pname1, pname2, pname3, pname4: TClProLabel; startbtn: TClProButton; void startgameV { { ShowMessage(IntToStr(Clomosy.GlobalVariableInteger)); // 90 gösterecek Clomosy.GlobalVariableInteger = 0; // İlk oyuncu için sıfırla Clomosy.RunUnit('uPlayer'); } } ----Player Unit---- uses homepage; var mainform2: TclForm; lb1, nameplayer: TClProLabel; okbtn: TClProButton; tempstring: String; void playerturn0V { { // Global değişkeni kullan Clomosy.GlobalVariableInteger = Clomosy.GlobalVariableInteger + 1; // 4 oyuncu döngüsü if (Clomosy.GlobalVariableInteger > 4) { Clomosy.GlobalVariableInteger = 1; } // Oyuncu ismini al case Clomosy.GlobalVariableInteger of { 1: tempstring = homepage.pname1.Text; 2: tempstring = homepage.pname2.Text; 3: tempstring = homepage.pname3.Text; 4: tempstring = homepage.pname4.Text; } nameplayer.Text = tempstring; } } |
|
![]() |
Yanıt Yaz ![]() |
|
Tweet |
Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |