Einzelnen Beitrag anzeigen

marabu

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

Re: Hint über SubItem einer ListView

  Alt 27. Jul 2007, 19:46
Hallo Lorenz,

in diesem Thread findest du zwei Ansätze um die Spalte in einer ListView zu ermitteln: im listview onclick spaltenindex heraus finden

Delphi-Quellcode:
uses
  CommCtrl;

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;

procedure TDemoForm.ListViewInfoTip(Sender: TObject; Item: TListItem;
  var InfoTip: String);
var
  p: TPoint;
  li: TListItem;
  iItem, iSubItem: Integer;
begin
  p := ScreenToClient(Mouse.CursorPos);
  li := GetItemAt(Sender as TListView, p.X, p.Y, iSubItem);
  if Assigned(li)
    then iItem := li.Index
    else iItem := -1;
  InfoTip := Format('Item %d SubItem %d', [iItem, iSubItem]);
end;
Getestet habe ich mit TListView - und dort funktioniert es.

Grüße vom marabu
  Mit Zitat antworten Zitat