Thema: Delphi self.free

Einzelnen Beitrag anzeigen

tommie-lie
(Gast)

n/a Beiträge
 
#17

Re: self.free

  Alt 28. Okt 2005, 17:16
Zitat von RavenIV:
ein Thread ist kein Objekt.
Wenn ich ihn mit BeginThread() starte nicht, richtig, aber eine TThread-Instanz ist ein Objekt (Gips nicht sogar ein Property TThread.FreeOnTerminate?).

Zitat von user0:
Es geht um Spielfiguren, die sich gegenseitig rausschmeißen.
So?
Delphi-Quellcode:
TPawn = class
public
  destructor Destroy();

  procedure Capture(var TSpielfigur: aPawn);
  procedure Move(Integer: x, y);
end;


procedure TPawn.Capture(var TPawn: aPawn)
begin
  aSpielfigur.Free;
  aSpielfigur := nil;
  self.Spieler.IncreasePoints(1);
end;

destructr TPawn.Move(x, y)
begin
  if Board[x,y].getPawn() <> nil then // da steht schon jemand
    if Board[x,y].getPawn().getPlayer() <> self.getPlayer then // und der jemand gehört nicht mir
      self.Capture(Board[x,y].getPawn()); // also sacke ich den ein
end;
Keine Ahnung ob die Syntax stimmt, aber laufen müsste es, selbst wenn es sich nicht kompilieren lässt
Wenn die Spielfigur noch irgendwas hat, was sie freigeben möchte, zum Beispiel irgendwelche Ausrüstung, die die schlagende Spielfigur vorher nicht an sich nimmt, kann sie das im Destruktor tun. Wenn sie sich vorher in irgendeinem Kontrollobjekt "abmelden" muss, kann sie das ebenfalls im Destruktor tun.
  Mit Zitat antworten Zitat