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.
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;