Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Interessantes Destruktor Problem
7. Jan 2011, 10:14
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TMyObject = class
Private
FMyTest:TStringList;
function GetInfo: String;
public
destructor Destroy; override;
Constructor Create; virtual;
procedure FreeInstance; override;
Property Info: String Read GetInfo;
end;
TMyObject2 = class(TMyObject)
public
destructor Destroy; override;
Constructor Create; override;
procedure FreeInstance; override;
end;
TForm1 = class(TForm)
ADODataSet1: TADODataSet;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
With TMyObject2.Create do Free;
end;
{ TMyObject }
constructor TMyObject.Create;
begin
inherited;
FMyTest:=TStringList.Create;
FMyTest.Add(' Text');
end;
destructor TMyObject.Destroy;
begin
FMyTest.Free;
inherited;
end;
procedure TMyObject.FreeInstance;
begin
inherited;
end;
function TMyObject.GetInfo: String;
begin
Result := FMyTest.Text;
end;
{ TMyObject2 }
constructor TMyObject2.Create;
begin
inherited;
end;
destructor TMyObject2.Destroy;
begin
Showmessage(' Vor inherited:' +Info);
inherited;
Showmessage(' Nach inherited:' +Info);
end;
procedure TMyObject2.FreeInstance;
begin
inherited;
end;
end.
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|