Einzelnen Beitrag anzeigen

Benutzerbild von Tormentor32
Tormentor32

Registriert seit: 27. Okt 2005
Ort: Düsseldorf
369 Beiträge
 
Delphi XE5 Professional
 
#6

Re: 6-Dimensionale Baumstruktur - Spielfeld

  Alt 28. Sep 2006, 11:30
So, ich habe das Konzept verworfen und ein neues gemacht, dabei habe ich aber auch wieder ein Problem

Ich habe ein Klasse TFeld und drei Unterklassen TMittelFeld, THauptFeld und TKindFeld

Delphi-Quellcode:
  TFeld = class(Tobject)
    FKoordinate: TPunkt;
    FFarbe: integer;
    image: Timage;
    constructor create;
  end;

    TKindFeld = class(TFeld)
      FNextKindFeld: TKindFeld;
      FLetzter: boolean;
      procedure inititialisiere(Ader,Ebene,Index: Integer; Letzter: Boolean);
    end;
    THauptFeld = class(TFeld)
      FKindFeld: TKindFeld;
      FNextHauptFeld: THauptFeld;
      FLetzter: boolean;
      procedure initialisiere(Ader,Ebene: integer; Letzter: Boolean);
    end;

    TMittelFeld = class(TFeld)
      FHauptFelder: array[1..6] of THauptFeld;
      procedure initialisiere;
    end;
Die Prozedur TMittelFeld.initialisiere erstellt ein Feld über create, welches die Mitte darstellt
und anschließend 6 Felder vom Typ THauptFeld über die prozedur THauptFeld.initialisiere, die im array FHauptFelder gespeichert sind.

Das Problem ist, dass die Variable

Mitte: TMittelFeld;

nach der Prozedur

Mitte.initialisiere

wieder auf nil zeigt, nur in der Prozedur selbst kann ich auf sie zufreifen, und wenn die Prozedur fertig ist, und ich darauf zugreifen will, kommt die Fehlermeldung

"Zugriffsverletzung"

da Mitte wieder den Wert "nil" hat.

Wie kriege ich es hin, dass die variable auch nach der initialisierung immer noch den Wert hat, und nicht wieder auf nil zeigt?

vielen dank schonmal

MFG Richard
Richard Mahr
  Mit Zitat antworten Zitat