Einzelnen Beitrag anzeigen

Benutzerbild von chrisw
chrisw

Registriert seit: 11. Jan 2005
Ort: Schleswig
193 Beiträge
 
Delphi XE8 Professional
 
#5

Re: Nicht visuelle Komponente instanzieren

  Alt 29. Mai 2007, 15:18
Richtig, Du musst einen constructor anlegen.

Dort den Comport instanzieren

Im destructor wieder freigeben.

Denk an override hinter der Deklaration und an inherited im constructor und im destructor.

Bsp.:

Delphi-Quellcode:
//TMyobject Deklaration
private
  ....
  MyComport : TComport;
public
  ....
  constructor Create; (Aowner:TComponent); override;
  destructor Destroy; override;


...
constructor TMyObject.Create(AOwner:TComponent);
begin
  inherited Create(AOwner); //ursprüngliche Instanzierung aufrufen
  MyComport := TComport.Create;
end;

destructor TMyObject.Destroy;
begin
  MyComport.Free;
  inherited; //ursprüngliches Destroy aufrufen
end;
//Edit : Hab noch mal drüber nachgedacht, ist natürlich gar nicht zwingend erforderlich, kannst Du aber so machen.
//Edit : Es geht genauso ohne constructor /destructor, Du musst nur sicherstellen, das du instanzierst, bevor der erste Zugriff auf
//Edit : das Objekt erfolgt.
Christian Wahl
me, myself and I, die lustigen Drei !!
  Mit Zitat antworten Zitat