AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fehler bei Programm

Offene Frage von "Xaaroth"
Ein Thema von Xaaroth · begonnen am 13. Okt 2008 · letzter Beitrag vom 13. Okt 2008
Antwort Antwort
Xaaroth

Registriert seit: 12. Okt 2008
6 Beiträge
 
#1

Fehler bei Programm

  Alt 13. Okt 2008, 14:49
Ich bin am verzweifen.Das Programm hat wunderbar funktioniert, aber seit ich ein normales Array gegen ein dynacmishes ausgetauscht habe tauchen lauter Fwhler auf. Das Programm scheint aber, wenn man die Fehler wegklickt weiterzulaufen.
Fehler im Anhang

Fehler beim starten:

http://img262.imageshack.us/my.php?image=fehler1pq2.png

Fehler beim beenden:
http://img352.imageshack.us/img352/7655/fehler2bu2.png

Woran könnte das liegen?

Delphi-Quellcode:
[...]
[b] Feld,Feld2: array of array of boolean;[/b]
  a,b,Menge,Feldmase:integer;
  Num,Save:TstringList;
  sMenge:string;
implementation

{$R *.dfm}

    procedure TForm1.ConfigField();
    begin
    Tabelle.DefaultColWidth:=round(513/Feldmase);
    Tabelle.DefaultRowHeight:=round(513/Feldmase);
    Tabelle.RowCount:=Feldmase;
    Tabelle.ColCount:=Feldmase;
    end;
   [..]
procedure TForm1.ShowData;
var x,y,z,S1:integer;
begin
 for x:=0 to 15 do begin
  for y:=0 to 15 do begin
  If Feld[x+1,y+1]=false then begin
    Tabelle.Cells[x+1,y+1]:=''
    end;
      If Feld[x+1,y+1]=true then begin
    Tabelle.Cells[x+1,y+1]:='X'
    end;
  end;
 end;
 for S1:=0 to 14 do begin
Tabelle.Cells[S1,0]:='X';
Tabelle.Cells[S1,14]:='X';
Tabelle.Cells[0,S1]:='X';
Tabelle.Cells[14,S1]:='X';
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var S1,S2:integer;
begin
[b]Feldmase:=16;
SetLength(Feld,Feldmase,Feldmase);
SetLength(Feld2,Feldmase,Feldmase);
ConfigField();[/b]

procedure TForm1.Button9Click(Sender: TObject);
var check:boolean;
temp:integer;
begin
check:=false;
try
temp:=round(Strtoint(Edit4.Text));
If temp<10 then begin
check:=true;
end;
If temp>40 then begin
check:=true;
end;
If check=true then begin
ShowMessage('Ungültiger Wert');
end;
If check=false then begin
Feldmase:=temp;
end;
except
ShowMessage('Bitte nur Zahlen eingeben');
end;
ConfigField();
end;

end.
Natürlich würde es so noch nicht funktionierren( also das machen was es soll).
Aber woran kann dieser Fehler leigen?

Die neuen Stellen sind fett

EDIT: Ein wenig eingekürtz an den Stellen, wo ich cnihts verändert hatte
Angehängte Grafiken
Dateityp: bmp fehler1_450.bmp (202,0 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.679 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: Fehler bei Programm

  Alt 13. Okt 2008, 14:55
Himmel Ar*** und Zwirn . Bei der Länge an Source zum "mal drüber schauen" wäre es denke ich schon angebracht, das ganze in eine zumindest einigermaßen lesbare (=styleguidekonforme) Form zu bringen.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fehler bei Programm

  Alt 13. Okt 2008, 14:56
Zwei Dinge:
Bitte gib deinem Thread einen aussagekräftigen Titel und
poste bitte nur die wirklich relevanten Codeteile.

@Medium: So einen Code habe ich hie rneulich schon mal gesehen. Mir wurde dann erklärt, dass sie das so in der Schule lernen würden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Fehler bei Programm

  Alt 13. Okt 2008, 14:56
Hab lange gesucht, bin dann aber auf
Zitat:
for a:=0 to 16 do begin
gestoßen. Hier versuchst Du, auf das 17. Element eines 16 Elemente großen Arrays zuzugreifen. Ändere hier mal die 16 in 15 (an allen Stellen) und versuch es dann noch einmal.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Xaaroth

Registriert seit: 12. Okt 2008
6 Beiträge
 
#5

Re: Fehler bei Programm

  Alt 13. Okt 2008, 15:02
Das ist es! Super vielen dank. Wieder mal ganz banal xD
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Fehler bei Programm

  Alt 13. Okt 2008, 15:27
Kleiner Tipp für die Zukunft: bei dynamischen Arrays nicht mit Konstanten arbeiten, sondern die Funktionen High() und Low() benutzen, dann kann Dir dieser Fehler nicht passieren.
for i := Low(Array) to High(Array) do
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:37 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