Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Problem mit zweidimensionalen Array
SebastianP - Mi 23.04.08 18:28
Titel: Problem mit zweidimensionalen Array
Hey =)
habt ihr eine AHnung warum das hier eine Exception verursacht?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| type TFeldStatus = (empty,engaged,tic,tac);
...
TSpieldaten = class strict private dasSpielfeld: Array[0..2] of Array [0..2] of TFeldStatus; public procedure setzeWert(x,y: integer; aktueller_Spieler: TFeldStatus); procedure initialisieren(); function pruefeFeld(x,y: integer): TFeldStatus; end;
...
procedure TSpieldaten.initialisieren(); var i,r: integer; begin for i:=0 to 2 do for r:=0 to 2 do dasSpielfeld[i][r] := empty; end; |
Ich hoffe ihr könnt mir weiterhelfen,
mach schon 3 Tage am dem Programm rum ;-)
Kann auch gern den ganzen Quellcode kopieren,
falls euch das weiterhilft!
LG Basti!
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Tilo - Mi 23.04.08 18:53
Hallo,
Willkommen im DF.
Wo genau tritt die Exception auf? (Welche Codezeile?)
kleiner Hinweis:
Nutze doch Delphi-Tags
schon erledigt
Christian S. - Mi 23.04.08 18:53
Ich tippe mal drauf, dass Du die Instanz von TSpieldaten nicht korrekt erstellt hast ;-)
Ansonsten gilt das, was Tilo sagte: Welche Exception kommt?
//edit: Ach ja, :welcome:
SebastianP - Mi 23.04.08 19:07
Hi, danke für die freundliche Aufnahme =)
sobld ich auf das Array zugreifen will, also hier:
Delphi-Quelltext
1:
| dasSpielfeld[i][r] := empty; |
Die folgende Exception tritt auf:
Erste Zufalls-Exception bei $7C81EB33. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 00462F2B in Modul 'tictactoe_game.exe'. Schreiben von Adresse 00000004'. Prozess tictactoe_game.exe (1348)
Moderiert von
Christian S.: Delphi-Tags hinzugefügt
Christian S. - Mi 23.04.08 19:09
Was ist mit meinem Hinweis? Wie hast Du das Objekt der Klasse TSpieldaten erstellt? :-)
SebastianP - Mi 23.04.08 19:19
Hab eben den Standardkonstruktor verwendet:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| constructor TSteuerung.createSteuerung(p_GUI: TForm1); begin inherited Create; dieGUI := p_GUI; aktueller_Spieler := tic; TSpieldaten.Create; dieSpieldaten.initialisieren(); end; |
Das stimmt nicht, richtig ;-) ?
SebastianP - Mi 23.04.08 20:56
Göttlich,so blöd muss man zuerst mal sein^^
Also das Problem lag tatsächlich wie ihr gleich vermutet hattet
bei dem Konstruktor von TSpieldaten.
Die Lösung hat war dann genau so wie es Marc. gesagt hat!
Vielen, vielen Dank!
Ich hätt mich echt früher anmelden sollen :-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 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!