Moin.
Ich habe eine ListView mit Style := vsReport. Jetzt würde ich ganz gerne wissen, auf welche Caption respektive auf welches SubItem geklickt wurde. Mit Hilfe folgender Zeilen bekomme ich die Mausposition und die gewählte Zeile heraus. Nur wie ermittel ich das SubItem?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.ListView1SelectItem(Sender: TObject; Item: TListItem; Selected: Boolean); begin if Item = nil then Exit; ShowMessage(Item.Caption); end;
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin MouseX := X; MouseY := Y end; |
Ich habe gedacht, dass ich die Breiten der Spalten notiere (Columns.Item[x].Width) und dann zur relativen Muasposition das SubItem herausbekomme. Das geht natürlich nur, WidthType = -2 ist.
Hat das schon mal jemand so gemacht, oder gibt es eine einfachere, sprich elegantere, Möglichkeit?
*EDIT*
Mir ist eingefallen, dass man Ingeneuren auch nicht Teillösungen vorgeben sollte, sondern einfach nur das Ziel nennt. Daher: Ich wollte gerne die SubItems in einer ListView editieren und nicht nur die Caption. Also, wer da etwas anderes weiß, als angesprochene Lösung...
Grüße,
Christian