AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi "Index der Liste überschreitet das Maximum (110)" Warum?
Thema durchsuchen
Ansicht
Themen-Optionen

"Index der Liste überschreitet das Maximum (110)" Warum?

Offene Frage von "felix00186"
Ein Thema von felix00186 · begonnen am 31. Dez 2015 · letzter Beitrag vom 1. Jan 2016
Antwort Antwort
felix00186

Registriert seit: 31. Dez 2015
6 Beiträge
 
#1

"Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 31. Dez 2015, 13:42
Moin!
Ich hoffe, ich bin in diesem Forum richtig. Ich bin gerade dabei, ein Fußball-Managerspiel zu programmieren. Beim Programm gibt es erst ein Fenster, in dem man einen neuen Spielstand erstellen oder einen alten laden kann.
Das eigentliche Spielfenster überprüft durch die Länge der Spielstand-Datei, ob das ein neuer oder ein alter Spielstand ist. Wenn es ein neuer ist, soll das Programm mit eine Procedure 11 Spieler erstellen und die Daten der Spieler in verschiedene Arrays packen. Seit Stunden hänge ich aber nun an folgender Fehlermeldung:

Zitat:
Der Index der Liste überschreitet das Maximum (110)
Diese Meldung scheint immer nach einer bestimmten Anzahl von Befehlen zu kommen. Wenn ich mit // ein paar Zeilen rausnehme, dann wird der Fehler ein paar Zeilen weiter angezeigt. Das kann doch aber eigentlich nicht sein, dass das Programm nach einer Weile einfach keine Lust mehr hat. Ich habe nun einen Button hinter einem Panel versteckt und bei Form3.activate geschrieben: "Button1.click". Der Rest geht dann über Form3.Button1Click weiter. Aber bei Button2 ist dann schon nach 3 Zeilen Schluss und außerdem kann das ja auch nicht die Lösung des Problems sein, versteckte Buttons einzubauen.
Wie gesagt, mir scheint es so, als wenn das Programm nur eine bestimmte Anzahl von Befehlen abarbeiten kann, aber das darf ja nicht sein und das war ja auch vorher nie so.

Kann mir vielleicht jemand helfen? Ich bin noch eher Anfänger und programmiere mit dem uralten Delphi 5.
Vielen Dank!
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.381 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: "Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 31. Dez 2015, 13:47
Willkommen,

die Fehlermeldung sagt schlicht, dass Du bei einer Liste auf ein Element zugreifst, das es nicht gibt. Dafür gibt es viele Ursachen. Am einfachsten ist es, wenn Du dein komplettes Projekt (*.dpr, *.pas *.dfm.... aber ohne *.exe und ohne *.dcu) zipst und hier anhängst. Ohne Code ist hier eine Fehlersuche wie stochern im Nebel.

Ich bin für heute aber raus
  Mit Zitat antworten Zitat
felix00186

Registriert seit: 31. Dez 2015
6 Beiträge
 
#3

ZIP-Datei

  Alt 31. Dez 2015, 13:52
Hier ist alles in einer ZIP-Datei.
Es kommt mir aber ziemlich komisch vor, dass sich der Fehler immer um so viele Zeilen verschiebt, wie ich mit // rausnehme. Sogar bei "end;" war angeblich schon mal der Fehler.

Das betrifft die Unit 3 im Zip-Ordner.

Guten Rutsch euch allen!
Angehängte Dateien
Dateityp: zip programm.zip (12,8 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: "Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 31. Dez 2015, 14:00
Nimm mal das Spiel := TStringList.create aus der Button1Click heraus?
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
  Spiel := TStringList.create;
  ..
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
  Spiel.Free;
end;
  Mit Zitat antworten Zitat
SProske

Registriert seit: 16. Feb 2015
Ort: Halle/S.
116 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: "Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 31. Dez 2015, 14:13
Delphi-Quellcode:
vorzeile:=Random(vornamen.count+1)+1;
     vorname:=vornamen[vorzeile];
Sieht potentiell gefährlich aus:
Hätte die Stringliste Vornamen genau 3 Elemente, würdest du Zufallszahlen von 0-3 Erzeugen und dazu 1 Addieren, also Zahlen von 1-4 in vorzeile stehen.
Die Stringliste hat aber nur die Indices 0,1,2 - bei 3 oder 4 würde es also immer zu der Index-Fehlermeldung kommen, während der Index 0 nie angesprungen würde.

Delphi-Quellcode:
vorzeile:=Random(vornamen.count);
     vorname:=vornamen[vorzeile];
Sollte korrekt sein.
Sebastian
  Mit Zitat antworten Zitat
felix00186

Registriert seit: 31. Dez 2015
6 Beiträge
 
#6

AW: "Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 1. Jan 2016, 17:19
Delphi-Quellcode:
vorzeile:=Random(vornamen.count+1)+1;
     vorname:=vornamen[vorzeile];
Sieht potentiell gefährlich aus:
Hätte die Stringliste Vornamen genau 3 Elemente, würdest du Zufallszahlen von 0-3 Erzeugen und dazu 1 Addieren, also Zahlen von 1-4 in vorzeile stehen.
Die Stringliste hat aber nur die Indices 0,1,2 - bei 3 oder 4 würde es also immer zu der Index-Fehlermeldung kommen, während der Index 0 nie angesprungen würde.

Delphi-Quellcode:
vorzeile:=Random(vornamen.count);
     vorname:=vornamen[vorzeile];
Sollte korrekt sein.
Vielen Dank, daran lag es!
  Mit Zitat antworten Zitat
felix00186

Registriert seit: 31. Dez 2015
6 Beiträge
 
#7

AW: "Index der Liste überschreitet das Maximum (110)" Warum?

  Alt 1. Jan 2016, 17:21
Nimm mal das Spiel := TStringList.create aus der Button1Click heraus?
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
  Spiel := TStringList.create;
  ..
end;

procedure TForm3.FormDestroy(Sender: TObject);
begin
  Spiel.Free;
end;
Dir auch vielen Dank! Das stimmt, die Stringlist spiel wurde wirklich mehrmals erstellt. Jetzt funktioniert das Programm endlich bis zu diesem Punkt und ich kann weitermachen. Warum der Fehler an total unterschiedlichen Stellen angezeigt wurde, die damit so gut wie nichts zu tun haben, weiß ich immer noch nicht, aber ist ja auch egal.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz