Konuyu Oyla:
  • Derecelendirme: 3.5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
kod ile oluşturulan butona olay ekleme
#1
ÇÖZÜLDÜ
merhaba değerli hocallarım bugün for ile 1 den fazla buton oluşturuyorum peki o butona nasıl olay ekliyeceğiz yani normalde button2.click olayını yazarım ama buton olmadığı için hata alıyorum buton sonradan eklendiği için nasıl bi mantığı vardır bunu?

şimdiden teşekkürler...



for I := 0 to Length(EnigmaAPI.Categories.yabancifilim) - 1 do
begin


yabancifilmbutton:=Tbutton.create(self);

yabancifilmbutton.top:=100;
yabancifilmbutton.left:=100;
yabancifilmbutton.height:=35;
yabancifilmbutton.width:=100;
yabancifilmbutton.Font.Size:=15;
yabancifilmbutton.parent:=(form2.ScrollBox3);
yabancifilmbutton.Align:=altop;
yabancifilmbutton.Name:= 'a' +  EnigmaAPI.Categories.yabancifilim[i].category_id;
yabancifilmbutton.caption:=  EnigmaAPI.Categories.yabancifilim [i].category_name;
end;
WWW
Cevapla
#2
Kardeş sitede bu konu farklı bir yapı ile ele alınmıştı
http://www.delphiturkiye.com/forum/viewt...nt#p195130
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
(26-06-2018, Saat: 10:03)adelphiforumz Adlı Kullanıcıdan Alıntı: Kardeş sitede bu konu farklı bir yapı ile ele alınmıştı
http://www.delphiturkiye.com/forum/viewt...nt#p195130

eyw yalnız buradaki benim konumla faklı
WWW
Cevapla
#4
(26-06-2018, Saat: 10:06)arsl01 Adlı Kullanıcıdan Alıntı:
(26-06-2018, Saat: 10:03)adelphiforumz Adlı Kullanıcıdan Alıntı: Kardeş sitede bu konu farklı bir yapı ile ele alınmıştı
http://www.delphiturkiye.com/forum/viewt...nt#p195130

eyw yalnız buradaki benim konumla faklı

Çok farklı değil 
Sanırım sayfada yazanlar biraz uzun ve detaylı diye tam okumadan yorum yaptın gibime geliyor. Smile
Sen bir butona bir event atamak istemiyormusun.
Eğer sorumun cevabı evet ise incelemen gereken yer doğru
Hayır ise ben ne demek istediğini anlıyamamışım demektir kusura bakma
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#5
Aşağıdakine benzer şekilde yapabilirsiniz.

for I := 0 to Length(EnigmaAPI.Categories.yabancifilim) - 1 do
begin
yabancifilmbutton:=Tbutton.create(self);
yabancifilmbutton.top:=100;
//vs.vs.
yabancifilmbutton.tag := ...... filmid; // burasına filmin id si gelecek
yabancifilmbutton.OnClick:=FilmButonClick; // yonlendiriceksiniz.
end;

procedure TForm1.FilmButonClick(sender: TObject);
var
filmid:Integer;
begin
filmid:=TButton(Sender).tag;
//ve yapmak isteiğiniz işlemler
end;
WWW
Cevapla
#6
Unit'inizin interface kısmında şu şeklinde bir procedure tanımlayın:
type
 TMainForm = class(TForm)
    //...
    procedure ButtonClick(Sender: TObject);
    //...
 end;

Daha sonra implementation bölümünde bu procedure'de neler yapılacağı yazmalısınız:
procedure TMainForm.ButtonClick(Sender: TObject);
begin
 ShowMessage(TButton(Sender).Name);
end;

Sizin paylaştığınız kodlarda yapmanız gereken ekleme:
yabancifilmbutton.OnClick := ButtonClick;
There's no place like 127.0.0.1
WWW
Cevapla
#7
(26-06-2018, Saat: 10:28)SimaWB Adlı Kullanıcıdan Alıntı: Unit'inizin interface kısmında şu şeklinde bir procedure tanımlayın:
type
 TMainForm = class(TForm)
    //...
    procedure ButtonClick(Sender: TObject);
    //...
 end;

Daha sonra implementation bölümünde bu procedure'de neler yapılacağı yazmalısınız:
procedure TMainForm.ButtonClick(Sender: TObject);
begin
 ShowMessage(TButton(Sender).Name);
end;

Sizin paylaştığınız kodlarda yapmanız gereken ekleme:
yabancifilmbutton.OnClick := ButtonClick;

yalnız butonların ismi belli değil ve kaç tane olduğuda belli dğeil jsonda kaç tane varsa ona göre yapılacak yani butonların ismini fordaki category_id belirliyor

(26-06-2018, Saat: 10:18)adelphiforumz Adlı Kullanıcıdan Alıntı:
(26-06-2018, Saat: 10:06)arsl01 Adlı Kullanıcıdan Alıntı: eyw yalnız buradaki benim konumla faklı

Çok farklı değil 
Sanırım sayfada yazanlar biraz uzun ve detaylı diye tam okumadan yorum yaptın gibime geliyor. Smile
Sen bir butona bir event atamak istemiyormusun.
Eğer sorumun cevabı evet ise incelemen gereken yer doğru
Hayır ise ben ne demek istediğini anlıyamamışım demektir kusura bakma

hocam evet ama buton ortada yok buton sonradan geliyor Big Grin
WWW
Cevapla
#8
Oluşturulan her butonun aslında ismi vardır ama siz kullanmayacaksanız siz bilirsiniz.
for I := 0 to Length(EnigmaAPI.Categories.yabancifilim) - 1 do
begin
 with Tbutton.create(self) do
 begin:
    //...
    OnClick := ButtonClick;
    //...
 end;
end;

procedure TMainForm.ButtonClick(Sender: TObject);
var
 birButton: TButton;
begin
 birButton := TButton(Sender);
 // burada birButton basılan butonu temsil eder. Buradan sonrası ne yapmak istediğinize göre size kalmış...
end;
There's no place like 127.0.0.1
WWW
Cevapla
#9
(26-06-2018, Saat: 10:39)SimaWB Adlı Kullanıcıdan Alıntı: Oluşturulan her butonun aslında ismi vardır ama siz kullanmayacaksanız siz bilirsiniz.
for I := 0 to Length(EnigmaAPI.Categories.yabancifilim) - 1 do
begin
 with Tbutton.create(self) do
 begin:
    //...
    OnClick := ButtonClick;
    //...
 end;
end;

procedure TMainForm.ButtonClick(Sender: TObject);
var
 birButton: TButton;
begin
 birButton := TButton(Sender);
 // burada birButton basılan butonu temsil eder. Buradan sonrası ne yapmak istediğinize göre size kalmış...
end;
hocama nladım sizi ama sizin örnekte hangi buton içi yapılmış butonun ismi birbuttonmu
WWW
Cevapla
#10
istediğin şey böyle bir şey değil mi ?

c-eventargs
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fast Report Araya Bağımsız Sayfa Ekleme bydelphi 1 464 02-01-2024, Saat: 23:21
Son Yorum: hi_selamlar
  Soap Header ekleme doublelaz 3 1.332 06-12-2022, Saat: 09:31
Son Yorum: Bay_Y
  cxGrid1 manuel kayıt ekleme delphiX14 3 1.216 25-07-2022, Saat: 14:16
Son Yorum: delphiX14
  webbrowser form file nesnesine dosya ekleme ugorkem 19 5.171 04-02-2022, Saat: 17:39
Son Yorum: vedat35
  Bir yarışma web sayfasındaki Butona Tıklatma Jakarta2 11 2.890 31-01-2022, Saat: 19:00
Son Yorum: Jakarta2



Konuyu Okuyanlar: 1 Ziyaretçi