Autor Beitrag
Müscha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Sa 25.03.06 12:39 
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:

ausblenden volle Höhe 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Sa 25.03.06 12:44 
probier ma:
ausblenden Delphi-Quelltext
1:
i := random(sl.Count-1);					


Darn sollte es liegen
Müscha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 693



BeitragVerfasst: Sa 25.03.06 13:02 
Die Fehlermeldung bedeutet, dass ein Item von einer StringList aufgerufen werden soll, das garnicht existiert.
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Sa 25.03.06 13:05 
user profile iconDanniolo hat folgendes geschrieben:
probier ma:
ausblenden Delphi-Quelltext
1:
i := random(sl.Count-1);					


Darn sollte es liegen


random(sl.count) ist schon richtig...

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Müscha Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 118



BeitragVerfasst: Sa 25.03.06 13:11 
Danke!!!!!!!!!!!!!!!!!!!!!!!

Hat wirklich nich existiert, hatte noch keine Millionenfrage angelegt!


DANKESCHÖN nochmal!!!!!!!!!!