Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
ListView içinde veri saklamak
#1
ListView'de listeme yaparken her satırda görünenlerin dışında veri(Object) saklamak için bir yöntem:

Örneğin; listview'de kişi bilgilerini gösteriyoruz; Ad ve soyad. 
Fakat kişinin ayrıca Telefon ve Doğum Tarihi bilgileri de var. Bunları da her listview satırı içinde saklamalı ve gerektiğinde kullanmalıyım.
Bunun için TListItem'dan bir sınıf türetip gerekli bilgilerimizi tanıtmalıyız:
TKisi = class(TListItem)
  private
    FAd: string;
    FSoyad: string;
    FTarih: TDateTime;
    FTelefon: string;
  public
    property Ad: string read FAd write FAd;
    property Soyad: string read FSoyad write FSoyad;
    property Tarih: TDateTime read FTarih write FTarih;
    property Telefon: string read FTelefon write FTelefon;
  end;

Daha sonra Listview'ın OnCreateItemClass olayında yukarıdaki sınıfımızı tanıtmamız gerekiyor:
procedure TForm1.ListView1CreateItemClass(Sender: TCustomListView; var ItemClass: TListItemClass);
begin
 ItemClass := TKisi;
end;

Artık Listview'a ekleme yaparken ve okurken TKisi sınıfını kullanabilirim:
var
  kisi: TKisi;
begin
  kisi := TKisi(ListView1.Items.Add);
  kisi.Ad := 'adım';
  kisi.Soyad := 'soyadım';
  kisi.Telefon := '0123456789';
  kisi.Tarih := Now;
  kisi.Caption := kisi.Ad + ' ' + kisi.Soyad; // Caption'a ekranda görünmesini istediğim bilgileri yazıyorum

Sakladığımız verileri okumak:
Örneğin listview'e çift tıklandığında:
procedure TForm1.ListView1DblClick(Sender: TObject);
begin
  ShowMessage(TKisi(ListView1.Selected).Telefon);
end;

Bu kullanım şeklinin en büyük artısı: Sakladığım TKisi sınıfı verilerini Free etmekle uğraşmıyorum  Cool
There's no place like 127.0.0.1
WWW
Cevapla
#2
Necnelerin TAG özelliğine başka yöntemle bakış.. Elinize sağlık. Çok işime yarıyacak.
WWW
Cevapla
#3
Eline sağlık.
Cevapla
#4
Elinize sağlık. Zorlanıyordum bu tür durumlarda...
Cevapla
#5
ihtiyaç bir konu
Cevapla

Konuyu Paylaş : facebook gplus twitter





Konuyu Okuyanlar: 1 Ziyaretçi