Thema: Delphi Listview: Zellenclick

Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2
  Alt 22. Sep 2002, 17:48
Man könnte es so lösen:
Code:
[b]function[/b] GetItemAndColAt(ListView: TListView; X, Y: Integer;
  out Item: TListItem; out Col: Integer): Boolean;
[b]var[/b] i, xx, w: Integer;
[b]begin[/b]
  Result := False;
  Col := -1;
  [b]with[/b] ListView [b]do[/b]
  [b]begin[/b]
    Item := GetItemAt(X, Y);
    [b]if[/b] Item = [b]nil[/b] [b]then[/b] Exit;
    xx := 0;
    [b]for[/b] i := 0 [b]to[/b] Columns.Count - 1 [b]do[/b]
    [b]begin[/b]
      w := Columns[i].Width;
      [b]if[/b] (X >= xx) [b]and[/b] (X < xx + w) [b]then[/b]
      [b]begin[/b]
        Col := i;
        Exit;
      [b]end[/b] [b]else[/b] Inc(xx, w);
    [b]end[/b];    
  [b]end[/b];
  Result := True;
[b]end[/b];
Diese Funktion liefert in "out Col" die Spalte. Wenn keine aus irgendwelchen Gründen keine Spalte ausgewählt wurde, dann wird -1 zurückgeliefert. In "out Item" wird das zu X/Y passende ListItem zurückgeliefert.
  Mit Zitat antworten Zitat