Einzelnen Beitrag anzeigen

fanavity

Registriert seit: 2. Sep 2011
65 Beiträge
 
#5

AW: XE2 ListView - SubItems -> Onklick

  Alt 9. Apr 2014, 20:39
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
  Mit Zitat antworten Zitat