Thema: Delphi Tcomponent/destructor

Einzelnen Beitrag anzeigen

beo

Registriert seit: 7. Sep 2006
13 Beiträge
 
#4

Re: Tcomponent/destructor

  Alt 13. Sep 2006, 19:32
Im allgemeinen wernden Objekte mit .Free freigegeben.

Eine Außnahme gibt es allerdings noch bei Forms. Hier sollte man Form.Release verwenden, damit mögliche Events noch vollständig abgearbeitet werden können, bevor das Form dann freigegeben wird.

Die Definition einer Klasse würde ich immer in eine Unit packen, wenn das nicht passt, sollte man sich überlegen ob man die Objekte nicht besser modellieren kann:

Beispiel:

Delphi-Quellcode:
Unit uHaus;

interface;

uses
  ..

type
  THaus = class(Tcomponent)
  public
    Constructor Create(AOwner..);
    Destructor Destroy; override;
  end;


implementation
  

Constructor THaus.Create(AOwner..);
begin
  inherited Create(AOwner);
...
end;

Destructor Destroy;
begin
 ...
 inherited Destroy;


end;
----

Delphi-Quellcode:
unit uTest


interface;

uses
  uHaus;


procedure Test;
var
  haus:THaus;
begin
  haus := THaus.Create(nil); // eine Instanz von Haus erzeugen
  haus.ToWas; // Instanz benutzen
  haus.Free; // Instanz wieder freigeben
end;

Du musst zwischen der Definition einer Klasse (hier in uHaus) und der Instanz (hier i uTest) einer Klasse unterscheiden. Nur die Instanz existiert wirklich, und nur mit der kannst du arbeiten. Die Definition ist eine Art Schablonbe, die beschreibt, was du abbilden möchtest.
Christian
  Mit Zitat antworten Zitat