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;
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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ı
Yazılımcı, kahveyi koda çeviren bir organizmadır.
Cevapla
#4
tiklama:= myclick?
Cevapla
#5
(13-01-2021, Saat: 12:40)PROGRAMADOR35 Adlı Kullanıcıdan Alıntı: tiklama:= myclick?

elbetteki
Yazılımcı, kahveyi koda çeviren bir organizmadır.
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
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 106 Dün, Saat: 10:58
Son Yorum: Bay_Y
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 237 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Çok Satırlı Filtreleme [Çözüldü] bünyamin68 12 1.351 14-02-2024, Saat: 22:42
Son Yorum: mustafaozpinar
  [ÇÖZÜLDÜ] macos işletim sistemine program yazmak shooterman 5 513 02-02-2024, Saat: 09:54
Son Yorum: shooterman
  COZULDU veritabani prg yerine ne kullanabilirim. sadikacar60 8 775 29-01-2024, Saat: 18:41
Son Yorum: sadikacar60



Konuyu Okuyanlar: 1 Ziyaretçi