Autor Beitrag
SebastianP
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 23.04.08 18:28 
Hey =)
habt ihr eine AHnung warum das hier eine Exception verursacht?


ausblenden 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..2of Array [0..2of TFeldStatus;
 // hab es auch schon mit einem statischen Array probiert!
  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 user profile iconChristian S.: Delphi-Tags hinzugefügt
Tilo
ontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 1098
Erhaltene Danke: 13

Win7 geg. WInXP oder sogar Win98
Rad2007
BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
SebastianP Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 23.04.08 19:07 
Hi, danke für die freundliche Aufnahme =)

sobld ich auf das Array zugreifen will, also hier:

ausblenden 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 user profile iconChristian S.: Delphi-Tags hinzugefügt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 23.04.08 19:09 
Was ist mit meinem Hinweis? Wie hast Du das Objekt der Klasse TSpieldaten erstellt? :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
SebastianP Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 23.04.08 19:19 
Hab eben den Standardkonstruktor verwendet:

ausblenden 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 ;-) ?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Mi 23.04.08 19:24 
Hi und auch ein :welcome: von mir! ;)
Du musst Deiner Instanz natürlich auch das Objekt zuweißen, sonst besteht ja hinterher keinerlei Verbindung.

ausblenden Delphi-Quelltext
1:
 Spieledaten := TSpieldaten.Create;					


Weitere Infos zum Konstruktor findest Du beim Delphi-Treff oder im Tutorial von user profile iconChristian S..

Cheers,
Marc
SebastianP Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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 :-)