Vielen Dank für die schnelle Antwort
Das werde ich gleich morgen mal testen.
Wenn ich nun onMouseDown statt OnClick verwende:
procedure TForm.ListView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
Dann könnte ich mir folgendes ja sparen:
ListViewCursosPos := TListView(Sender).ScreenToClient(Mouse.CursorPos);
richtig?
Das würde dann so aussehen:
Delphi-Quellcode:
function GetSubItem(Listview: TListview; X, Y: Integer): Integer;
// Requires unit "CommCtrl"
var
HitTest: TLVHitTestInfo;
begin
result := -1;
with HitTest
do
begin
pt.X := X;
pt.Y := Y;
If (Listview.perform( LVM_SUBITEMHITTEST, 0, lparam(@HitTest)) <> -1)
then begin
result := HitTest.iSubItem;
end;
end;
end;
procedure TForm.ListView1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var ColumnIndex: Integer;
begin
ColumnIndex := GetSubItem(TListView(Sender), X, Y);
if ColumnIndex>-1
then begin
showmessage(TListView(Sender).Column[ColumnIndex].Caption);
end;
end;
So müsste es wohl klappen. Ich werde morgen mal bescheid geben