sınıf alanları listeleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
nightwolfcem
Üye
Mesajlar: 32
Kayıt: 02 Eki 2008 02:55

sınıf alanları listeleme

Mesaj gönderen nightwolfcem »

oluşturduğum sınıfların alanlarına ulaşmam gerekiyor.
Yani genel bir fonksiyon yazıp, bir sınıfın hangi alanları var bulmam ve bunların değerleri ile dosyaya yazdırmam lazım.
Bir çok sınıfım var ve genel bir fonksiyon olması şart . Bunun hakkında önerisi olan varsa sevinirim. aslında en güzeli sınıfların DefineProperties fonksiyoınunu ezip her özelliği kaydettirmek, ama oda çok uzun oluyor . Benim istediğim bu işi yapıcak ,ana sınıfa yazılıcak bir fonksiyon.
bu arada delphi nin system library sinde
function TObject.FieldAddress(const Name: ShortString): Pointer; fonksiyonu dikkatimi cekti bu fonksiyon teker teker nesne içindeki tüm alanların ismini kontrol edip eğer verilen isimle uyuyorsa o alanın adresini dönderiyor. yanlız kod assembly de yazılmış ve kendi sınıfıma aynen kopyaladığımda, aynı kod hatalı çalışıyor.
bunun nedeni nedir acaba ?
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: sınıf alanları listeleme

Mesaj gönderen unicorn64 »

delphi 2010 kullanıyorsanız, bu sürümle gelen rtti (Run Time Type Information) yı kullanabilirsiniz... gerçi ifade biraz yanlış oldu, rtti eskiden beri var ama 2010 sürümüyle gelen özelliklerle çok kolay bir kullanım imkanı sağlanmış. sınıfa ait property, field ve fonksiyonların listesini alabilir, nesnenin belirttiğiniz isimdeki property sinin değerine ulaşabilirsiniz...

ayrıca typInfo unitinde bulunan GetPropList,GetStrProp, GetObjectProp gibi fonksiyonlar da işinizi görebilir...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Cevapla