Einzelnen Beitrag anzeigen

McLane

Registriert seit: 4. Sep 2004
37 Beiträge
 
Delphi 5 Professional
 
#12

Re: Spielfeld mit Klassen als Felder

  Alt 16. Mai 2006, 15:21
Moin,

ich würde in TFeld einen neuen Constructor einführen, dem du als Parameter den Feldplatz übergibts. Sollte auf dem Feld schon was sein, löst er einfach den Destructor aus, so dass bei der Zuweisung das Feld dann wieder frei ist. Durch die Ableitung der TBomb von TFeld erbt TBomb den Constructor einfach.

Delphi-Quellcode:
type
  TFeld = class
 
    Position: TPoint;
  public
    Constructor Create(PFeld: TFeld); override; // oder reintroduce; (je nach Vorfahr)
  end;
 
  TBomb = class (TFeld)
   
    ExploTime: Integer;
  end;

TSpielfeld = array[0..1,0..1] of TFeld;

var
  S: TSpielFeld;

Constructor TFeld.Create(PFeld: TFeld);
begin
  inherited;
  if assigned(PFeld) then
    FreeAndNil(PFeld);
end;
// Der Constructor entfernt ein evtl. vorhandenes Feld für uns automatisch
S[0,0] := TBomb.Create(S[0,0]); //etc.
  Mit Zitat antworten Zitat