Çalışma Esnasında Kodla oluşturulan bir nesneye olay ekleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Çalışma Esnasında Kodla oluşturulan bir nesneye olay ekleme
Merhaba
Çalışma Esnasında kodla oluşturduğum bir nesnenin olaylarını nasıl kontrol edebiliriz. Mesala kodla oluşturduğum bir butonu hareket ettirmek istiyorum. bir butonu hareket ettirmek için,
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TButton(Sender).perform(WM_SYSCOMMAND, $F012, 0);
end;
kodunu kullanıyorum. Ama kodla oluşturduğum butonu nasıl hareket ettirebilirim bana yardım ederseniz sevinirim.
Çalışma Esnasında kodla oluşturduğum bir nesnenin olaylarını nasıl kontrol edebiliriz. Mesala kodla oluşturduğum bir butonu hareket ettirmek istiyorum. bir butonu hareket ettirmek için,
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
TButton(Sender).perform(WM_SYSCOMMAND, $F012, 0);
end;
kodunu kullanıyorum. Ama kodla oluşturduğum butonu nasıl hareket ettirebilirim bana yardım ederseniz sevinirim.
Button1MouseDown procedure ni private kısımda tanımla.
Butonunu run time oluşturduktan sonra şöyle bir kod yazman gerekiyor altına:
oluşturduğun butonun onMouseDown eventında o procedure yi çağırır.
Kolay gelsin.
Butonunu run time oluşturduktan sonra şöyle bir kod yazman gerekiyor altına:
Kod: Tümünü seç
obj_buton.onMouseDown := Button1MouseDown;
Kolay gelsin.
Sevgili Hicker senin kod benimkiyle aynı işe yarıyo. o kodun çalışması için eklenen nesnenin olayını bir şekilde o koda yönlendirmem gerekiyo ama senin kod maalesef yemedi. teşekkür ederim.
Sevgili naile senin söylediğini tam anlayamadım. anladığım kadarıyla procedure'ü
private
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
şeklinde tanımlıyoz. Ama bu sefer unit'in type kısmından silinmesi gerekiyo. o şekilde projeyi çalıştırdığımda 'invalid Property value' gibi bi hata veriyo. Alttada "Private symbol 'button1mousedown' declared but never used' hatası veriyo. private kısmında tanıtmadan denedim obj_buton tanımsız hatası veriyo. Ne yazık ki bu da işe yaramadı. Başka bir öneriniz var mı? Teşekkür Ederim.
Sevgili naile senin söylediğini tam anlayamadım. anladığım kadarıyla procedure'ü
private
procedure Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
şeklinde tanımlıyoz. Ama bu sefer unit'in type kısmından silinmesi gerekiyo. o şekilde projeyi çalıştırdığımda 'invalid Property value' gibi bi hata veriyo. Alttada "Private symbol 'button1mousedown' declared but never used' hatası veriyo. private kısmında tanıtmadan denedim obj_buton tanımsız hatası veriyo. Ne yazık ki bu da işe yaramadı. Başka bir öneriniz var mı? Teşekkür Ederim.
Öncelikle sana tavsiyem dikkatli ol, o "Alttada 'Private symbol 'button1mousedown' declared but never used' hatası veriyo." dediğin bir warning yani uyarıdır. Anlamını bilmiyorsun belki diye söyliyeyim., button1mousedown tanımlanmış ama hiç kullanılmamış demek.
Nailenin söylediğini biraz daha detaylandırayım, form un üzerine bir tane butan koy ve mouse down unu oluştur, daha sonrada eğer istemiyorsan form üzerinden butonu sil, sadece butonu Event kalsın, daha sonrada RunTime Button u nerde create ediyorsan, Create ettiğin Button un, (Diyelim adı My_Button)
yazacaksın okadar.
Nailenin söylediği gibi Private kısmına eklenmek zorunda değil sadece Class ın içinde olması gerekir, Yani Protected yada public e de yazılabilinir
Kolay gele
Nailenin söylediğini biraz daha detaylandırayım, form un üzerine bir tane butan koy ve mouse down unu oluştur, daha sonrada eğer istemiyorsan form üzerinden butonu sil, sadece butonu Event kalsın, daha sonrada RunTime Button u nerde create ediyorsan, Create ettiğin Button un, (Diyelim adı My_Button)
Kod: Tümünü seç
My_Button.OnMouseDown := button1mousedown;
Nailenin söylediği gibi Private kısmına eklenmek zorunda değil sadece Class ın içinde olması gerekir, Yani Protected yada public e de yazılabilinir
Kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
- mehmet_turecan_cakmak
- Üye
- Mesajlar: 132
- Kayıt: 02 Tem 2003 01:08
- Konum: Afyon
- İletişim:
hareket
unyeli ben senin yerinde olsam formun keydown olayına butonun top ve left olaylarıyla ilgili kodlar yazardım yani butonun top ve leftini arttırıp eksilterek gibi...
iyi çalışmalar...
iyi çalışmalar...