Delphi-PRAXiS

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 Problem mit TListItem (https://www.delphipraxis.net/50550-problem-mit-tlistitem.html)

Alois 27. Jul 2005 14:53


Problem mit TListItem
 
Ich habe in einer ListView eine Spalte mit einem Icon gespeichert.

Wenn ich nichts in der Liste markiert habe soll sich das Icon in
Abhängigkeit von seinem vorigen Status Zeile.ImageIndex <> 1 in
den Status Zeile.ImageIndex := 0; wechseln. Ist ein Eintrag in
der Liste markiert ist, wird die markierte Zeile geändert. Der Programm-
abschnitt mit markierter Zeile funktioniert.

Aber leider funktioniert der unten abgedruckte Code nicht. :wall:
Das Problem ist die Repeat/Until Schleife. Sobald ich die Anweisung
(Zeile.ImageIndex <> 1) ausführe gibt es einen Fatalen Fehler.

Warum?????

Gruss Alois ;)
Delphi-Quellcode:
procedure TfrmMain.btnNeustartClick(Sender: TObject);
var
   Zeile, ZeileSel: TListItem;
   i: integer;
begin
     // Wurde irgendeine Zeile selektiert?
     ZeileSel := lvwQueue.Selected;
     Zeile := lvwQueue.Items.Item[0];

     if (Zeile = nil) and (ZeileSel = nil) then
        exit;

     i := lvwQueue.Items.Count;
     repeat
       Zeile := lvwQueue.Items.Item[i];
       i := i - 1;
     until (i = -1) or (Zeile.ImageIndex <> 1);

     if (ZeileSel <> nil) and (ZeileSel.ImageIndex <> 1) then
        Zeile := ZeileSel;

     Zeile.ImageIndex := 0;
end;

Mystic 27. Jul 2005 15:05

Re: Problem mit TListItem
 
Delphi-Quellcode:
i := lvwQueue.Items.Count;
Da das Item-Array nullbasiert ist hat das letzte Item einen Index von Count-1. Daher machst du aus dieser Zeile das:

Delphi-Quellcode:
i := lvwQueue.Items.Count - 1;
Denn ansonsten existiert dein Item nicht und so kommt es natürlich beim Zugriff auf ImageIndex zu einem Fehler.

Alois 27. Jul 2005 15:35

Re: Problem mit TListItem
 
Hi @Mystic,

Danke das war's. Du hast mir wirklich sehr geholfen. ;)

Mystic 27. Jul 2005 15:37

Re: Problem mit TListItem
 
Kein Problem. ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 Uhr.

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