Delphi Attribute

Bu yazımda Delphi de Attribute kullanımını anlatacağım. Daha önce C# veya Java ile uğraşanlar attribute kavramını bilirler. Fakat bilmeyenler için kısaca açıklayalım; Attribute: özellik, nitelik demektir. Kullanıldıkları yerde ayırt edici, niteleyici, gruplayıcı veya ekstra nitelik kazandırıcı bir etki gösterirler. Delphi de attribute tanımlamak için köşeli parantez operatörleri kullanılır.

Örneğin:
[xml (‘AdSoyad’)]
[donusum (TDonusumEnum.json)]

Not: Attribute’ler TCustomAttribute sınıfından türetilmelidir.
Not: Attribute kavramı Delphi 2010 ve sonra ki sürümlerde mevcuttur.

Şimdi bir örnek ile kendimize özel bir attribute tanımlayalım ve RTTI yardımı ile kullandığımız yerlerde ki değerlerini okuyalım.

Yeni bir proje açın ve yukardaki uPersonel.pas dosyasını projenize ekleyin ardından projenize bir adet TButton ve TMemo nesnesi ekleyin ve alttaki kodları da button1.click event’ına yazın.

Butonu tıkladığınızda TPersonel sınıfının elemanlarının xml ve json formatında çıktılarını göreceksiniz. Bu örnek, Attribute ve RTTI sisteminin nasıl çalıştığını anlatmak için özet bir uygulamaydı. İsteğinize göre geliştirip sınıfı komple json yada xml formatına çeviren parser da yazabilirsiniz.

Ekran çıktısı;

Bu örneği Delphi xe7 versiyonunda yazdım. Delphi 2010 ve sonrasında da sorunsuz çalışacaktır.