Sayfayı Yazdır | Pencereyi Kapat

Buton üzerinden parametreli fonksiyon çağırmak

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


Konu: Buton üzerinden parametreli fonksiyon çağırmak
Mesajı Yazan: merenefe
Konu: Buton üzerinden parametreli fonksiyon çağırmak
Mesaj Tarihi: 09 Haziran 2024 Saat 19:34
İyi günler,

Aşağıdaki kod örneklerinde de görüldüğü üzere veritabanımdan gelen kullanıcıların her birisi için bir buton oluşturdum ve id değerlerine göre ilgili fonksiyona parametre göndererek işlem yapmak istiyorum. Fakat buton'un event kodlarında fonksiyon çalıştırabilirken parametreli fonksiyonu nasıl çalıştırabileceğimi (veya böyle bir özellik mevcut mu?) bilmiyorum. Bu durum için ,alternatif bir yol da mevcut ise, çözümünüzü bekliyorum. 

void TestFunc(idTest : Integer){
  ShowMessage(idTest);
}

void GetUsernamesToListView
{
  try
    selectQuery.SQL.Text = 'SELECT id,username from users';
    selectQuery.Open;
    if (selectQuery.Found)
    {
       while (not selectQuery.Eof)
       {
       btnUser = MyForm.AddNewButton(vertScrollBox,'btnUser'+selectQuery.FieldByName('id').AsString, selectQuery.FieldByName('username').AsString);
       MyForm.AddNewEvent(btnUser,tbeOnClick,'TestFunc(4)');
       btnUser.Align = alMostTop;
      selectQuery.Next;
       }
    }
    else
    {
      ShowMessage('Kayıt bulunamadı!');
    }
  finally
  }
}

Teşekkürler.


-------------
Mehmet Eren Efe



Cevaplar:
Mesajı Yazan: Atiker01
Mesaj Tarihi: 11 Haziran 2024 Saat 11:26
Merhaba Eren,

Aşağıdaki örnekte yer alan kodlamada butonlar dinamik oluşturuluyor. Butonların hint özelliğinin içerisine butonların id'si yazılıyor. Butonlara tek bir click void atanıyor. Void içerisinde hint değerine bakılarak hangi butonun tıklandığı belirleniyor.

Var  
 MyForm:TclForm;
 testPanel : TclProPanel;
 testBtn : TClProButton;
 i : Integer;

 void BtnOnClick; 
 var
   clickedBtn:TClProButton;
 {
 clickedBtn = TClProButton(Myform.Clsender); 
 ShowMessage(clickedBtn.Caption); //TClProButton(Myform.Clsender).Caption
 ShowMessage(clickedBtn.Hint);
 clickedBtn.Caption = '+++';

 }

{
 MyForm=TclForm.Create(self);
 testPanel=MyForm.AddNewProPanel(MyForm,'testPanel');
 clComponent.SetupComponent(testPanel,'{"Align" : "Center","Width" :200, 
"Height":300,"RoundHeight":10,"RoundWidth":10,"BorderColor":"#3a32a8","BorderWidth":2}');

 for (i = 0 to 4)
 {
 testBtn = MyForm.AddNewProButton(testPanel,'testBtn'+IntToStr(i+1),'');
clComponent.SetupComponent(testBtn,'{"caption":"testBtn'+IntToStr(i+1)+'","Align" : "Top","MarginTop":5,"MarginLeft":5,"MarginRight":5,
 "Height":50}');
MyForm.SetImage(testBtn,' https://clomosy.com/demos/foodInformationBox.png" rel="nofollow - https://clomosy.com/demos/foodInformationBox.png '); 

 testBtn.Hint = 'Document '+IntToStr(i);
 MyForm.AddNewEvent(testBtn,tbeOnClick,'BtnOnClick');
 }

 MyForm.Run;
}

iyi çalışmalar.


Mesajı Yazan: merenefe
Mesaj Tarihi: 11 Haziran 2024 Saat 17:52
Olumlu, teşekkürler.

-------------
Mehmet Eren Efe



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