Çeviri: Ramazan Gülbahar.
ListView tıklandığı zaman OnClick olayı tıklanan nesneyi algılıyabilir, bizde X ve Y deiğişkenlerini kullanarak ListView’den tıklı nesneyi algılayarak kullanabiliriz.
TListVew'in GetHitTestInfoAt uygulaması belirtilen bölgedeki bilgileri algılar.
Bir tıklama olduğundan emin ol daha sonra GetHitTestInfoAt uygulaması çağırılacak.
ListView1'in DoubleClick olayına bir handle
Kod: Tümünü seç
procedure TForm.ListView1DblClick(Sender: TObject) ;
var
hts : THitTests;
ht : THitTest;
sht : string;
ListViewCursosPos : TPoint;
selectedItem : TListItem;
begin
{ListView içinde fare imlecinin işaret ettiği nesnenin pozisyonu}
ListViewCursosPos := ListView1.ScreenToClient(Mouse.CursorPos) ;
{Nereye çift tıklandı?}
hts := ListView1.GetHitTestInfoAt(ListViewCursosPos.X, ListViewCursosPos.Y) ;
{"debug" tıklama testi}
Caption := '';
for ht in hts do
begin
sht := GetEnumName(TypeInfo(THitTest), Integer(ht)) ;
Caption := Format('%s %s | ',[Caption, sht]) ;
end;
{Çift tıklanan nesnenin yeri}
if hts <= [htOnIcon, htOnItem, htOnLabel, htOnStateIcon] then
begin
selectedItem := ListView1.Selected;
{Çift tıklanan nesneyle birşeyler yap}
Caption := Format('DblClcked : %s',[selectedItem.Caption]) ;
end;
end;
GetHitTestInfoAt değerleri THitTests türünün geri dönen değerleridir. ThitTest’ler THitTest numaralandırılmış değerleridir.
THitTest değerlerinin açıklamaları:
• htAbove – Yukarıdaki alan.
• htBelow – Aşşağıdaki alan.
• htNowhere – Kontrolün içi ama nesnenin üzeri değil.
• htOnItem – Nesnenin üzeri, bu bir metin ya da bitmap resmi.
• htOnButton – Button üzeri.
• htOnIcon - İkon üzeri.
• htOnIndent – Nesnenin kalıtım (indented) alanı.
• htOnLabel – Label üzeri.
• htOnRight – Nesnenin sağ tarafının üzeri.
• htOnStateIcon – Bir nesneyle oluşturulmuş İkon ya da bitmap’ın nesne üzerindeki yeri.
• htToLeft – Nesnenin Sol tarafı.
• htToRight – Nesnenin sağ tarafı.
Eğer GetHitTestInfoAt in dönen sonucu [htOnIcon, htOnItem, htOnLabel, htOnStateIcon] ise kullanıcının metine (ya da ikon / ikon bölgesi) tıklandığına emin olun.
Sonunda, yukarısı doğru ise ListView seçme özelliğ(Selected), ilk seçilen nesneyi (ya da ilk seçilen nesneleri)geri döndürür. Artık tıklanan(ya da çift tıklanan) nesnelerle istediğini yapabilirsin.