![]() |
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; |
Re: Problem mit TListItem
Delphi-Quellcode:
Da das Item-Array nullbasiert ist hat das letzte Item einen Index von Count-1. Daher machst du aus dieser Zeile das:
i := lvwQueue.Items.Count;
Delphi-Quellcode:
Denn ansonsten existiert dein Item nicht und so kommt es natürlich beim Zugriff auf ImageIndex zu einem Fehler.
i := lvwQueue.Items.Count - 1;
|
Re: Problem mit TListItem
Hi @Mystic,
Danke das war's. Du hast mir wirklich sehr geholfen. ;) |
Re: Problem mit TListItem
Kein Problem. ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 Uhr. |
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