Sayfayı Yazdır | Pencereyi Kapat

Buton İçindeki Label

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=591
Tarih: 08 Ocak 2025 Saat 00:30
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Buton İçindeki Label
Mesajı Yazan: emre.gungor01
Konu: Buton İçindeki Label
Mesaj Tarihi: 08 Mayıs 2024 Saat 22:46
Merhabalar,
          Projemde ortada bir yuvarlak olması gerekiyordu, yuvarlak ekledim tıklanma olayıda ekledim fakat ortasına yazı eklemem lazım ve bu yazı yuvarlakla birlikte hareket etmesi lazım yuvarlak sağa gittiğinde yazıda sağa gitmeli , sola gittiğinde yazıda sola gitmeli fakat yapamadım. Bu sefer buton ekleyeyim dedim tam yuvarlak olmadı aşağıdaki gibi oldu neyse olduğu kadar artık dedim devam ettim tıklanma olayı ekledim bu sefer yazıyı yine ekleyemedim. Nasıl yapabilirim?   Görsel;

Proje Kodları;

var
  AnaForm:TclForm;
  testbutton: TClProButton;
  testLabel: TclProLabel;
 
 void Btnsayi;
 var
  testLabel:Integer;
 {
  testLabel=1;
   while (testLabel <= 10)
   {
   ShowMessage('testLabel: ' + IntToStr(testLabel));
   testLabel = testLabel + 1;
   }
 }
 
{

  AnaForm = TCLForm.Create(Self); 
 
  AnaForm.SetFormColor('#52504d', '', clGNone); 
 
  testbutton = AnaForm.AddNewProButton(AnaForm,'testbutton', '');
  testLabel = AnaForm.AddNewLabel(testbutton, 'testLabel', '');
 
  clComponent.SetupComponent(testbutton, '{"Align": "Center", "Width": 250, "Height": 250,
  "BorderColor": "#ffffff","RoundHeight": 200, "RoundWidth": 200}'); 
 
  clComponent.SetupComponent(testLabel, '{"Align": "Center", "BorderColor": "#000000",
  "Width": 250, "Height": 250}');
 
  AnaForm.AddNewEvent(testbutton,tbeOnClick,'Btnsayi');
  AnaForm.AddNewEvent(testLabel,tbeOnClick,'');
  AnaForm.Run; 
}






Cevaplar:
Mesajı Yazan: Atiker01
Mesaj Tarihi: 09 Mayıs 2024 Saat 10:16
Merhaba Emre,

Kodunu inceledim. Bir pro buton bileşeni oluşturup içerisine label bileşeni eklemeye çalışmışsın. Bu şekilde bir ekleme yapamazsın. Buton text özelliğine metnini yazabilirsin. Bu sebepten başka bir bileşene (label) ihtiyaç kalmıyor. Aşağıda kodlarını istediğin şekilde düzenleme yaparak paylaşıyorum.


Var
   AnaForm:TclForm;
   btn1 : TClProButton;
 
void Btnsayi;
 var
  sayac:Integer;
 {
  sayac=1;
  btn1.Text = IntToStr(sayac);
 }
 
 {
   AnaForm = TclForm.Create(Self);
   AnaForm.SetFormColor('#52504d','',clGNone); 
   btn1 = AnaForm.AddNewProButton(AnaForm,'btn1','SAYAC');
   btn1.Align = alCenter;
   btn1.Width = 100;
   btn1.Height = 100;
   btn1.clProSettings.BorderColor = clAlphaColor.clHexToColor('#a0a3b1');
   btn1.clProSettings.FontColor = clAlphaColor.clHexToColor('#050505');
   btn1.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ffffff');
   btn1.clProSettings.IsTransparent = False;
   btn1.clProSettings.FontSize = 12;
   btn1.clProSettings.FontVertAlign = palcenter;//palLeading , palCenter , palTrailing
   btn1.clProSettings.FontHorzAlign = palCenter;
   btn1.clProSettings.IsFill = True; 
   btn1.clProSettings.IsRound = True;
   btn1.clProSettings.RoundHeight = 50;
   btn1.clProSettings.RoundWidth = 50;
   btn1.clProSettings.BorderWidth = 3;
   btn1.SetclProSettings(btn1.clProSettings);
   
   AnaForm.AddNewEvent(btn1,tbeOnClick,'Btnsayi');
   AnaForm.Run;
 
 }

Sorunun çözüme ulaşıp ulaşmadığı ile ilgili geri dönüşünü bekliyorum.
İyi çalışmalar diliyorum.



Mesajı Yazan: emre.gungor01
Mesaj Tarihi: 10 Mayıs 2024 Saat 18:29
Bu sefer denediğimde içindeki labelda yazan sayı normalde her bastığımda artması lazımken şuanda artmıyor, dögülerden yapmayı denedim fakat olmadı önceki yaptığımda Showmessage demiştim ve her bastığımda gösteriyordu ekranda. Bunun nedeni nedir, nasıl yapabilirim?


Mesajı Yazan: Atiker01
Mesaj Tarihi: 10 Mayıs 2024 Saat 18:34
Merhaba Emre,
Bunun için zamanlayıcı (TclTimer) kullanmalısın. Uygulama içerisinde saniyede bir örnekteki Btnsayi adlı void'e gitmeli ve o kısımda istediğin yapıya göre mantığı değiştirebilirsin.


Mesajı Yazan: emre.gungor01
Mesaj Tarihi: 10 Mayıs 2024 Saat 19:56
Tamam bunu yaptım her tıkladığımda 1 1 artarak yazdırıyorum fakat 25. sayıya geldiğimde durmasını istiyorum bunu görmek içinde ekranda showmessage la yazdıracağım. if-else-Else if yapısını kullandım fakat anlamadım.

Kodlar;

void zamanlayici;
{
  if(sayac == sayac)
  {
  sayac = sayac + 1;
  Zaman.Enabled = False;
  btn1.Text = IntToStr(sayac);
  }
  else if(sayac == 25)
  {
  ShowMessage('Süre doldu!');
  
  }
  else
  {
  btn1.Text = IntToStr(sayac);
  sayac = sayac + 1;
  }
}


Mesajı Yazan: emre.gungor01
Mesaj Tarihi: 10 Mayıs 2024 Saat 20:22
En son yazmış olduğum sorunun cevabı aslında iç içe if-else yapısı imiş halletmiş oldum.



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