Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#51

AW: Elemente aus TStringList in Laufzeit entfernen

  Alt 18. Nov 2018, 21:58
Wenn die Vokabeln, nachdem sie erfolgreich "erraten" wurden, aus der Liste entfernt werden, ist Count irgendwann = 0. Dann ist die Liste leer.

Ist Count = 1, ist nur noch eine Vokabel enthalten, dann läuft die Schleife wirklich weiter, bis der Strom ausfällt

Wenn man per Index auf 'ne Stringliste zugreift, sollte man ggfls. vorher abfragen, ob Index >= 0 und kleiner Count ist. Nur dann "greift" man auf einen vorhandenen Wert zu.

Wenn also nur noch eine Vokabel in der Liste ist, könnte man z. B. sowas in der Art machen:
Delphi-Quellcode:
if Vocabulary.Count = 0 then begin
  ShowMessage(Format('Die letzte Vokabel ist: %s',[Vocabulary.ValueFromIndex[0]]);
  // Oder hier das "Fertigformular" (Form3) aufrufen ...
end else begin
  RepetitionCheck:=RandomNumber;
  While RepetitionCheck = RandomNumber Do RandomNumber:=random(Vocabulary.Count);
...
  Mit Zitat antworten Zitat