Runtime Oluşturduğum Bütün Nesneleri Nasıl Listelerim

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Runtime Oluşturduğum Bütün Nesneleri Nasıl Listelerim

Mesaj gönderen pro_imaj »

SimaWB yazdı:
pro_imaj yazdı:Merhaba;
konunun devamı olarak; Muharrem bey'in mantığında bir yapı oluşturdum. Oluşturduğum bu Nesneye Mause İle Tıkladığımda NesneName'ini nasıl alırım.

Örneğin Runtime de 2 adet edit oluşturdum. Sonrasında bu editlerden herhangi birine mause ile tıkladığımda Nesne Name'ini (yani hangi edit olduğunu) nasıl alabilirim.

Yardımlarınız için şimdiden teşekkürler.
Oluşturduğunuz Edit'ler için ortak bir OnClik olayı yazmışsınız diye tahmin ediyorum. OnClick'in tek bir parametresi var: Sender: TObject
Bu parametre hangi Edit tıklandıysa onu size verir ve Edit'in ismi:

Kod: Tümünü seç

TEdit(Sender).Name

Merhaba;
Editlere Create ederken herhangi bir olay yazmadım.

Takıldığım noktalar.
-Create Ederken Her edit için ortak bir event mi yazmalıyım (Bunu daha önce hiç yapmadım)
-Hangi edite tıklandığını anlamak için hangi olaya kod yazacağım?
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Runtime Oluşturduğum Bütün Nesneleri Nasıl Listelerim

Mesaj gönderen mrmarman »

Şöyle özet geçeyim.
Bir nesne (TEdit mesela) form üzerine koydun diyelim. Evenlerinden birine çift tıkladığında otomatik olarak bir procedure oluşturup seni oraya götürür değil mi?

Şimdi formdaki herhangi bir edit ile bunu yap ve oluşan procedure sana özel kopyasını oluştur.

Kopyasını oluşturduğun procedure adı
ProEditDegisti(sender:TObject);
gibi olacaktır mesela.

Sen bundan sonra bu eventi her ProEdit için kullanmak istediğinde create ettiğin with içerisinde

Kod: Tümünü seç

OnChange := ProEditDegisti; 
demen yeterli. O nesne ne zaman değişiklik görse senin özel procedure otomatik çalışacaktır.

Oluşturduğun procedure, senin formunun sınıfı altında olacağından

Kod: Tümünü seç

TForm1.ProEditDegisti...
gibi olmalıdır yoksa event işlemez.

Sonunda oluşturduğun bu procedure üzerinde ctrl+shift+c buton kombinasyonu basarak form sınıf erişim başlığının otomatik olarak oluşturulmasını sağlayabilirsin.

Uzun anlattım zor gelirse kolayı forma bir edit koy, o editi sakla, üzerindeki eventleri yapmak istediklerinle doldur.

Bu edit senin semer takıp bineceğin edit olsun, hangi eventi lazımsa onun event procedure adını aynen senin create ettipin tedit nesnelerinde söyledipim şekilde eşitle.
Resim
Resim ....Resim
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Runtime Oluşturduğum Bütün Nesneleri Nasıl Listelerim

Mesaj gönderen thelvaci »

Delphi, ilginçlikler diyarı..! ve Bir TStringList türevi.. makalelerini okurmusunuz lütfen. Temel hususları bilmeden program yazmaya çalışmak epey yorucu bir süreç olur.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: Runtime Oluşturduğum Bütün Nesneleri Nasıl Listelerim

Mesaj gönderen pro_imaj »

mrmarman yazdı:Şöyle özet geçeyim.
Bir nesne (TEdit mesela) form üzerine koydun diyelim. Evenlerinden birine çift tıkladığında otomatik olarak bir procedure oluşturup seni oraya götürür değil mi?

Şimdi formdaki herhangi bir edit ile bunu yap ve oluşan procedure sana özel kopyasını oluştur.

Kopyasını oluşturduğun procedure adı
ProEditDegisti(sender:TObject);
gibi olacaktır mesela.

Sen bundan sonra bu eventi her ProEdit için kullanmak istediğinde create ettiğin with içerisinde

Kod: Tümünü seç

OnChange := ProEditDegisti; 
demen yeterli. O nesne ne zaman değişiklik görse senin özel procedure otomatik çalışacaktır.

Oluşturduğun procedure, senin formunun sınıfı altında olacağından

Kod: Tümünü seç

TForm1.ProEditDegisti...
gibi olmalıdır yoksa event işlemez.

Sonunda oluşturduğun bu procedure üzerinde ctrl+shift+c buton kombinasyonu basarak form sınıf erişim başlığının otomatik olarak oluşturulmasını sağlayabilirsin.

Uzun anlattım zor gelirse kolayı forma bir edit koy, o editi sakla, üzerindeki eventleri yapmak istediklerinle doldur.

Bu edit senin semer takıp bineceğin edit olsun, hangi eventi lazımsa onun event procedure adını aynen senin create ettipin tedit nesnelerinde söyledipim şekilde eşitle.
Muharrem Bey, başta siz olmak üzere @thelvacı, SimaWB hepinize çok teşekkür ederim. Olayı sayenizde çözdüm.
6 yılı aşkın bir süredir Delphiden ayrıydım ve runtime nesnelerle de ilk defa uğraşmam hasabiyle bocalıyorum. Fakat bu örnekle birlikte Runtime mantığı kafamda iyice oturdu.

Saygılarımla.
İyi çalışmalar.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla