Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TStringList: "Listen Index überschreitet das Maximum 0" (https://www.delphipraxis.net/114034-tstringlist-listen-index-ueberschreitet-das-maximum-0-a.html)

Spiderpig_GER_15 18. Mai 2008 18:13


TStringList: "Listen Index überschreitet das Maximum 0&
 
Folgender Auzug erzeug den Fehler: "Listen Index überschreitet das Maximum 0"

Aber ich weiß nicht wie ich ihn beheben kann :wall:

Delphi-Quellcode:
procedure TForm1.Loadlevel;
var MapData        :TStringList;
    i              :integer;
    aktuell        :Tstringlist;
    x1,x2,x3,x4,y1  :integer;
begin
  MapData  :=TStringList.Create;
  MapData.LoadFromFile('MapData.txt');
  aktuell  :=TStringlist.Create;

  for y1:=0 to MapData.Count do //ergibt 20
  begin
    x1:=1;
    x2:=2;
    x3:=3;
    x4:=4;

    for i:=0 to ((length(MapData[0])+1)div 5) do    //ergibt in meinem Fall 30
    begin
      aktuell[0]:=((MapData[x1][y1])+(MapData[x2][y1])+(MapData[x3][y1])+(MapData[x4][y1])); //<= Langes
                                                                                             //ausprobieren
                                                                                             //brachte mich zu
      with TWall.Create(MySpriteEngine) do                                                  //dem Schluss das
      begin                                                                                 //der Fehler hier
        Image := MyImageList.Find(aktuell[0]) ;                                             //steckt :(
        x    := x1*50 ;
        y    := y1*50 ;
        z    := 0     ;
      end;

      x1:=x1+5;
      x2:=x2+5;
      x3:=x3+5;
      x4:=x4+5;

      aktuell.Clear;
    end;
  end;
end;
also dieser Auszug soll, wenn er ganz feritg ist, mein Level Text in Bildchen uminterpretieren.
Aber das ist unwichtig, mein Problem ist das er mir die Fehler Meldung: "Listen Index überschreitet das Maximum 0" ausspuckt.

Ich habe auch gekennzeichnet, wo ich vermute wo der Fehler erzeugt wird, nur kann ich keinen Fehler erkennen :gruebel:

Hoffe ihr könnt mir helfen

MfG

Spiderpig

Die Muhkuh 18. Mai 2008 18:14

Re: TStringList: "Listen Index überschreitet das Maximu
 
Setz mal einen absoluten Pfad ;)
Und die Schleife muss bis Count - 1 laufen.

DeddyH 18. Mai 2008 18:15

Re: TStringList: "Listen Index überschreitet das Maximu
 
Versuch es mal mit
Delphi-Quellcode:
aktuell.Add(...)

Klaus01 18. Mai 2008 18:16

Re: TStringList: "Listen Index überschreitet das Maximu
 
Hallo,

schon mal versucht die Schleife
Delphi-Quellcode:
for y1:=0 to MapData.Count do //ergibt 20
  begin
    x1:=1;
    x2:=2;
    x3:=3;
    x4:=4;

    for i:=0 to ((length(MapData[0])+1)div 5) do    //ergibt in meinem Fall 30
    begin
      aktuell[0]:=((MapData[x1][y1])+(MapData[x2][y1])+(MapData[x3][y1])+(MapData[x4][y1])); //<= Langes
bis MapData.count -1 laufen zu lassen?

Grüße
Klaus

sx2008 18. Mai 2008 18:18

Re: TStringList: "Listen Index überschreitet das Maximu
 
Delphi-Quellcode:
// Falsch !!
for y1:=0 to MapData.Count do //ergibt 20 
// korrekt
for y1:=0 to MapData.Count-1 do

Spiderpig_GER_15 18. Mai 2008 18:18

Re: TStringList: "Listen Index überschreitet das Maximu
 
Delphi-Quellcode:
  for y1:=0 to MapData.Count -1 do
  begin
    x1:=1;
    x2:=2;
    x3:=3;
    x4:=4;

    for i:=0 to ((length(MapData[0])+1)div 5) do
    begin
      aktuell.add((MapData[x1][y1])+(MapData[x2][y1])+(MapData[x3][y1])+(MapData[x4][y1]));

      with TWall.Create(MySpriteEngine) do
      begin
        Image := MyImageList.Find(inttostr(x1)+inttostr(x2)+inttostr(x3)+inttostr(x4)) ;
        x    := x1*50;
        y    := y1*50;
        z    := 0    ;
      end;

      x1:=x1+5;
      x2:=x2+5;
      x3:=x3+5;
      x4:=x4+5;

      aktuell.Clear;
    end;
  end;
end;
meint ihr so?

jetzt kommt: Listenindey überschreitet das maximum 21 :(

mkinzler 18. Mai 2008 18:24

Re: TStringList: "Listen Index überschreitet das Maximu
 
Wie sieht den der Typ des Arrays aus?

Klaus01 18. Mai 2008 18:27

Re: TStringList: "Listen Index überschreitet das Maximu
 
Ist irgendwo sichergestellt, dass
die Werte x1,x2,x3 und x4 nicht größer als
MapData.count -1 werden können?

Grüße
Klaus

Spiderpig_GER_15 18. Mai 2008 18:27

Re: TStringList: "Listen Index überschreitet das Maximu
 
hab den fehler, die frage hat sich erledigt

bei

Delphi-Quellcode:
    for i:=0 to ((length(MapData[0])+1)div 5) do
    begin
      aktuell.add((MapData[x1][y1])+(MapData[x2]y1])+(MapData[x3][y1])+(MapData[x4][y1]));
muss

Delphi-Quellcode:
    for i:=0 to ((length(MapData[0])+1)div 5) do
    begin
      aktuell.add((MapData[y1][x1])+(MapData[y1][x2])+(MapData[y1][x3])+(MapData[y1][x4]));
Ich dachte bei einer Stringlist steht in der ersten eckigen Klammer [Nr Buchstabe] und in der 2ten [nr Zeile].
Ist aber andersrum :cry:

aber ejtzt tutz :mrgreen:

THX

Spiderpig

Die Muhkuh 18. Mai 2008 18:48

Re: TStringList: "Listen Index überschreitet das Maximu
 
Zitat:

Zitat von Spiderpig_GER_15
aber ejtzt tutz

Ist das ein neuer Technobeat? :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz