Thema: Delphi Objekte freigeben

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#15

Re: Objekte freigeben

  Alt 26. Feb 2009, 18:49
Diese Deklaration ist nicht sicher:
Delphi-Quellcode:
TMyBox = class(TWorldBox)
 public
   { Public-Deklarationen } 
   Parameter : TParameter;
   construcor Create(AOwner: TComponent); override;
   destructor Destroy; override;
end;
Das Problem ist, dass jeder von Aussen die Variable Parameter umbiegen kann.
Das führt zwangsläufig zu Fehlern.

Über ein Property kann man die Sache aber wasserdicht machen:
Delphi-Quellcode:
TMyBox = class(TWorldBox)
 private
   FParameter : TParameter;
   procedure SetParameter(value:TParameter);

 public
   { Public-Deklarationen } 
   construcor Create(AOwner: TComponent); override;
   destructor Destroy; override;
   property Parameter : TParameter read FParameter write SetParameter;
end;

procedure TMyBox.SetParameter(value:TParameter);
begin
  FParameter.Assign(value);
end;
Die Klasse TParameter muss von TPersistent abgeleitet werden und die Methode Assign muss überschrieben werden.
Mehr zu Assign() - leider auf englisch http://delphi.about.com/od/course/a/delphi_oop21.htm
Andreas
  Mit Zitat antworten Zitat