Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Im ListView OnClick SpaltenIndex heraus finden....

  Alt 31. Jan 2007, 18:25
Gut, wenn man sich zu helfen weiß.

Wer mindestens Version 4.70 der Common Controls installiert hat, der kann es auch so angehen:

Delphi-Quellcode:
uses
  CommCtrl; // min. 4.70

function GetItemAt(lv: TListView; X, Y: Integer; var iSubItem: Integer): TListItem;
var
  hti: TLVHitTestInfo;
begin
  hti.pt := Point(X, Y);
  iSubItem := ListView_SubItemHitTest(lv.Handle, @hti);
  if iSubItem >= 0 then
  begin
    Result := lv.Items[iSubItem];
    iSubItem := hti.iSubItem;
  end else Result := nil;
end;
Getestet habe ich so:

Delphi-Quellcode:
procedure TTestForm.ListViewMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
var
  li: TListItem;
  iItem, iSubItem: Integer;
begin
  li := GetItemAt(Sender as TListView, X, Y, iSubItem);
  if Assigned(li)
    then iItem := li.Index
    else iItem := -1;
  Caption := Format('Item %d SubItem %d', [iItem, iSubItem])
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat