Guten Morgen Leute,
Ich programmiere ein Quiz und alles läuft relativ gut, nur bei der vorletzten Frage kommt dieser Fehler:
Im Projekt Project1.exe ist eine Exception der Klasse EStringListError aufgetreten. Meldung: `Listenindex überschreitet das Maximum (0)´. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.
Was bedeutet das? Woran kann das liegen?
Ich hab mir paar Gedanken gemacht, ich benutze eine TStringList. Vielleicht hat das ja nur einen geringen Speichervolumen. Oder bedeutet das was mit einem Memofeld?
Ich schick mal den quelltext mit, wo das Programm eine neue Frage sucht und ich TStringlist verwende:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51:
| case e of 1: val := 100; 2: val := 200; 3: val := 300; 4: val := 500; 5: val := 1000; 6: val := 2000; 7: val := 4000; 8: val := 8000; 9: val := 16000; 10: val := 32000; 11: val := 64000; 12: val := 125000; 13: val := 500000; 14: val := 1000000;
end;
sl := TStringList.Create;
// erst alle zeilen suchen, die suchkriterium entsprechen: // auf 1. datensatz gehen
Table1.First;
// alle datensätze abarbeiten...
while not Table1.Eof do begin
// wenn suchkriterium gefunden: datensatz-nummer merken
if Table1.Fields[6].AsInteger = val then sl.Add(Inttostr(Table1.Fields[5].Asinteger)); Table1.Next; end;
// aus den gefundenen datensätzen einen zufällig auswählen:
randomize; i := random(sl.Count);
// zum ausgewählten datensatz springen: Table1.First; Table1.MoveBy(StrtoInt(sl[i])-1);
sl.free; |
Danke erstmal!