Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListView - Zeile herrausfinden (https://www.delphipraxis.net/96156-listview-zeile-herrausfinden.html)

marabu 21. Jul 2007 13:41

Re: ListView - Zeile herrausfinden
 
Hallo.

Zitat:

Zitat von bitsetter
Delphi-Quellcode:
// ...
for i := 0 to Pred(ListView1.Items.Count) do
// ...
end;

Warum alle Items überprüfen? Das können ziemlich viele sein - trotz Break.
Würde es nicht genügen nur die sichtbaren Items zu testen?
TopItem und VisibleRowCount könnten dabei helfen.

Grüße vom marabu

bitsetter 21. Jul 2007 14:23

Re: ListView - Zeile herrausfinden
 
Hallo,

in seinem Fall sollen es ja nur 50 Einträge sein, aber ansonsten hast du sicherlich recht. Ich hoffe mal, dass es so besser ist.
Delphi-Quellcode:
procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  Loop, LastItem : integer;
begin
  if (Sender is TListView) and (TListView(Sender).Items.Count > 0) then
  begin
    LastItem := TListView(Sender).TopItem.Index + TListView(Sender).VisibleRowCount;
    if TListView(Sender).Items.Count = LastItem then
      LastItem := Pred(TListView(Sender).Items.Count);
    for Loop := TListView(Sender).TopItem.Index to LastItem do
      if PtInRect(TListView(Sender).Items.Item[loop].DisplayRect(drBounds), Point(X, Y)) then
      begin
        Caption := inttostr(Loop);//Beispiel
        break;
      end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:21 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz