![]() |
ListView, welches Item unter Cursor
Lässt sich irgendwie das genaue Item unter der aktuellen Position des Mauscursors bestimmen? Ich kann zwar das ganze Item mit ItemAt auslesen aber müsste noch wissen ob es Caption oder SubItem[x] ist. Um das herauszufinden bräuchte ich noch die Spaltennummer, aber die findet man nur raus wenn man auf den Spaltenkopf klickt. Irgendeine Idee? Hab das schonmal gemacht, aber damals mit der ListView von TMS und da ging das.
|
Re: ListView, welches Item unter Cursor
Möglichkeit 1: Du nimmst ein VirtualStringTree.
Möglichkeit 2: Du nimmst diese meine Funktion. Sie liefert true, wenn sie etwas gültiges findet. Kleiner "Nachteil": Es muss RowSelect angeschalten sein, sonst werden keine Subitems gefunden.
Delphi-Quellcode:
//cut here ------------------------------------------------------------------------
function TForm2.GetHitTestInfoEx(X, Y: Integer; const ListView: TListView; var Item: TListItem; var Column: Integer): Boolean; var HT : THitTests; OffSet : Integer; idx : Integer; begin Result:=false; Column:=-1; HT:=ListView.GetHitTestInfoAt(X,Y); if (not (htAbove in HT)) and (not (htBelow in HT)) and (not (htNoWhere in HT)) then begin //ok, we are on an item Result:=true; Item:=Listview.GetItemAt(X,Y); OffSet:=0; for idx:=0 to ListView.Columns.Count-1 do if (x>=OffSet) and (x<=OffSet+ListView.Columns[idx].Width) then begin Column:=idx; exit; end else Inc(Offset,ListView.Columns[idx].Width); Result:=false; end; end; //cut here ------------------------------------------------------------------------ procedure TForm2.ListView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); var Item : TListItem; col : Integer; begin if GetHitTestInfoEx(x,y,ListView1,Item,col) then Self.Caption:=Item.Caption+' - Spalte '+IntToStr(col) else Self.Caption:='Nischt wird .... nö .... geh weg'; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz