Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Çalışma Zamanında oluşturulan nesnede çalışma farkı
#1
Arkadaşlar selamlar

Çalışma zamanında butonlar create ediyorum. Normalde form üzerine oluşturulan butona tıkladığımda hangi buton olduğunun adını alıyorum. Ama bu butonları bir scrollbox içine create ettiğim zaman tıkladığımda buton caption gelmiyor. Kodlar aşağıda. Neden olduğunu bir türlü bulamadım. konu hakkında destek alabilrsem çok sevinirim.

Form üzerine create :

procedure TForm1.Button3Click(Sender: TObject);
var
 Button: TButton;
begin
 Button:=TButton.Create(Form1);
 try
   with Button do
   begin
     Parent:=Self;
     Left:=Random(Form1.ClientWidth-Width);
     Top:=Random(Form1.ClientHeight-Height);
     Caption:='Button';
     OnClick :=  tiklama;  
   end;
 except
   Button.Free;
 end;
end;

scroolbox içine create :

procedure TForm1.Button4Click(Sender: TObject);
var
 btnTest : TButton;
 i : integer;
begin
for I := 0 to 10 do
   begin
   btnTest := TButton.Create(ScrollBox1);
   btnTest.Parent := ScrollBox1;
   btnTest.Align := altop;
   btnTest.Height := 20;
   btnTest.Caption:=Format('Buton %d', [i]);
OnClick :=  tiklama; 
end;
end;


tiklama kodu :

procedure TForm1.myClick(Sender: TObject);
begin
 with Sender as Tbutton do
//  Self.Caption := ClassName + ' ' + Name;
   Self.Caption := caption;
end;
Cevapla
#2
with'siz deneyin. ana formun caption'ı ile sender'inkiler (button) karışmış sanırım. Program yazarken asla with kullanmam. diğer componentlerin methodları ile çakışma yaşanabiliyor.
Cevapla
#3
malesef çalışmadı
Cevapla
#4
tiklama:= myclick?
Cevapla
#5
(13-01-2021, Saat: 12:40)PROGRAMADOR35 Adlı Kullanıcıdan Alıntı: tiklama:= myclick?

elbetteki
Cevapla
#6
Button4Click(Sender: TObject); prosedüründe hata yapmışsınız.

OnClick'in formun onclick'i. btnTest.OnClick := myClick ya da tiklama yazmalısınız.
Cevapla
#7
Çalışıyor, sadece ScrollBox içine yazdırırken OnClick için
   btnTest.OnClick :=  myClick;
yapmamışsınız. Ya da ben konuyu anlayamadım.
Cevapla
#8
(13-01-2021, Saat: 12:51)mustafaozpinar Adlı Kullanıcıdan Alıntı: Çalışıyor, sadece ScrollBox içine yazdırırken OnClick için
   btnTest.OnClick :=  myClick;
yapmamışsınız. Ya da ben konuyu anlayamadım.

Scrollbox içindeki butonların onclick olayı çalışmıyordu. Yanlışlıkla formun onclick'i atanmış.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  [ÇÖZÜLDÜ] Programın Ram üzerinde kapladığı alan hk. wiseman 16 5.097 19-01-2021, Saat: 15:41
Son Yorum: mrmarman
  [ÇÖZÜLDÜ] Scrollbox içindeki nesneyi başka scrollbox a sürükle bırak wiseman 14 346 17-01-2021, Saat: 21:36
Son Yorum: wiseman
  [ÇÖZÜLDÜ] WebDav ile Bulut Sunucuya Dosya Yükleme theSinan 9 2.859 14-01-2021, Saat: 01:48
Son Yorum: SenayAkgun
  [ÇÖZÜLDÜ] Tablodaki verileri belirli bir düzenle memoya aktarma wiseman 8 355 25-12-2020, Saat: 17:14
Son Yorum: hi_selamlar
  [ÇÖZÜLDÜ]-Tip Dönüşümü - [TXSDecimal > Float ) hi_selamlar 7 3.653 22-12-2020, Saat: 17:23
Son Yorum: Jakarta2



Konuyu Okuyanlar: 1 Ziyaretçi