Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Fehlermeldung bei Quiz
Müscha - Sa 25.03.06 12:39
Titel: Fehlermeldung bei Quiz
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:
Quelltext
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!
Danniolo - Sa 25.03.06 12:44
probier ma:
Delphi-Quelltext
1:
| i := random(sl.Count-1); |
Darn sollte es liegen
Müscha - Sa 25.03.06 12:47
jetzt hat er den selben Fehler nur statt der 0 eben so eine große Zahl.
Im Projekt Project1.exe ist eine Exception der Klasse EStringListError aufgetreten. Meldung: `Listenindex überschreitet das Maximum (1090979276)´. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen.
Was bedeutet der Fehler denn überhaupt?
Danniolo - Sa 25.03.06 13:02
Die Fehlermeldung bedeutet, dass ein Item von einer StringList aufgerufen werden soll, das garnicht existiert.
Born-to-Frag - Sa 25.03.06 13:05
Danniolo hat folgendes geschrieben: |
probier ma:
Delphi-Quelltext 1:
| i := random(sl.Count-1); |
Darn sollte es liegen |
random(sl.count) ist schon richtig...
Müscha - Sa 25.03.06 13:11
Danke!!!!!!!!!!!!!!!!!!!!!!!
Hat wirklich nich existiert, hatte noch keine Millionenfrage angelegt!
DANKESCHÖN nochmal!!!!!!!!!!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!