Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Bileşen İçinde Veri Saklama
#1
Form üzerinde kullandığınız bir bileşen içinde farklı veriler saklama ihtiyacı olmuştur. Bunun için çeşitli yöntemler mevcut. Bunlar bir tanesi tüm bileşenlerde bulunan Tag özelliğini kullanmak:
http://www.delphican.com/butonlarla-kate...9#pid22009

Farklı bir yöntem de bileşene yeni bir özellik eklemek
Yukarıdaki linkte verilen örnekten gidecek olursak; Buton içerisinde değişik bilgiler (TVeri tipinde) saklamak istiyoruz. Bunun için TButton sınıfına özellik ekleme yapmalıyız:
 TButton = class(StdCtrls.TButton)
 private
   FVeri: TVeri;
 public
   constructor Create(AOwner: TComponent); override;
   destructor Destroy; override;

   property Veri: TVeri read FVeri write FVeri;
 end;

implementation

{ TButton }

constructor TButton.Create(AOwner: TComponent);
begin
  inherited;
  FVeri := TVeri.Create;
  FVeri.id := 0;
  FVeri.Name := '';
end;

destructor TButton.Destroy;
begin
  FVeri.Free;
  inherited;
end;

TButton oluşturulurken kendi sınıfımızı oluşturup başlangıç değerlerini atıyoruz. Buton yok edilirken de kendi sınıfımızı hafızadan serbest bırakıyoruz.

Not: Bu eklemeyi muhakkak unitin en üst kısmında yapmalıyız!

Artık forma Button1 adında bir TButton eklediğinizde kodlarımız içinde yeni özelliğimizi şöyle kullanabiliriz:
Button1.Veri.id := 100;
Button1.Veri.Name := 'SimaWB';
There's no place like 127.0.0.1
WWW
Cevapla
#2
Bunu ogrendigim cok iyi oldu hocam tesekkurler
WWW
Cevapla
#3
Interposer / Interceptor sınıfların nasıl kullanıldığı ile ilgili faydalı bir makale aşağıdaki linkte yer alıyor,

http://www.delphican.com/interposer-clas...nilir.html
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#4
Smile 
(02-11-2018, Saat: 17:32)uparlayan Adlı Kullanıcıdan Alıntı: Interposer / Interceptor sınıfların nasıl kullanıldığı ile ilgili faydalı bir makale aşağıdaki linkte yer alıyor,

http://www.delphican.com/interposer-clas...nilir.html

Hocam ben sizin makale linkini verecektim. Hızlı davrandınız.  Smile
PostgreSQL - Linux - Delphi, Poliüretan
WWW
Cevapla
#5
Çok sık kullandığım bir şey, dediğiniz gibi bazen yetmiyor Smile

ancak ben constructor kullanmadan kullanıyorum, gerek olmadığında bu bir probleme yol açmıyor ? 

  TMyHTTP = class(TIdHTTP)
  public
   FileSize: Int64;
   MBar: TProgressBar;
 end;
WWW
Cevapla
#6
@uparlayan kusura bakmayın sizin makale ile aynı konu olmuş ama yine de bulunmasında fayda olacağını düşündüğüm için burayı silmiyorum Sad

O zaman farklı bir bakış açısı daha ekleyelim. Saklamak istediğim ek özellikleri barındırmak için Class yerine Record kullanırsak Create / Free derdinde de kurtulmuş oluruz:
type
  TVeri = record
    Id: Integer;
    Name: String;
  end;

  TButton = class(StdCtrls.TButton)
  private
    FVeri: TVeri;
  public
    property DbId: Integer read FVeri.Id write FVeri.Id;
    property DbName: String read FVeri.Name write FVeri.Name;
  end;

Bu şekilde bir tanımlama yaptığımızda implementation bölümünde ekstra bir şey yapmaya gerek kalmaz  Idea

Artık form üzerindeki buttonlarımızın ekstra özellikleri var:
Button1.DbId := 100;
Button1.DbName := 'SimaWB';
There's no place like 127.0.0.1
WWW
Cevapla
#7
(02-11-2018, Saat: 17:47)SimaWB Adlı Kullanıcıdan Alıntı: @uparlayan kusura bakmayın sizin makale ile aynı konu olmuş ama yine de bulunmasında fayda olacağını düşündüğüm için burayı silmiyorum Sad


Estağfurullah, o konu benim tekelimde değil, ben sadece benim makalede biraz daha etraflıca anlatıldığı için konuya ilgisi olanların orayı da okumasında fayda olduğunu düşündüğüm için paylaşım yaptım, tabii ki herkes / hepimiz benzer konular yazabiliriz, sıkıntı yok Wink

+ yaptığınız ekleme de güzel bir öneri, tebrik ederim.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla
#8
Çok yararlı bir makale olmuş , emeği geçen herkese teşekkürler.

Bunu fmx tarafında listview dynamic appearance içine ekledigimiz itemler içinde yapabilirmiyiz.
Cevapla
#9
(02-11-2018, Saat: 18:40)malitutuncu Adlı Kullanıcıdan Alıntı: Çok yararlı bir makale olmuş , emeği geçen herkese teşekkürler.

Bunu fmx tarafında  listview dynamic appearance içine ekledigimiz itemler içinde yapabilirmiyiz.

Her item, class yapısında olduğu için item'lara da uygulanabilir.
DelphiCan'dır!
Cevapla
#10
(02-11-2018, Saat: 18:40)malitutuncu Adlı Kullanıcıdan Alıntı: Çok yararlı bir makale olmuş , emeği geçen herkese teşekkürler.

Bunu fmx tarafında  listview dynamic appearance içine ekledigimiz itemler içinde yapabilirmiyiz.

Evet, uygulayabilirsiniz, tasarım aşamasında görsel bir etki gözükmez fakat runtime'da etkisini görrüsünüz.
YouTube Delphi Tips
"Mantıklı adam kendini dünyaya uyarlar; mantıksız adam ise dünyayı kendine uydurmakta inat eder. Bu nedenle, tüm ilerleme o inatçı adama bağlıdır." - George Bernard Shaw
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  AnonymousThread ile ListView'e Veri Yükleme witalihakko 5 7.098 17-11-2019, Saat: 09:21
Son Yorum: delphi-x
  Datasnap + Rest Server -> Evrensel Veri Adaptörü - 001 - Sunucu Uygulaması mad85 7 7.786 17-11-2017, Saat: 22:56
Son Yorum: mad85
  Pascal Dersleri #4 - Veri tipleri AliZairov 0 2.509 02-05-2017, Saat: 15:21
Son Yorum: AliZairov



Konuyu Okuyanlar: