Witam, mam pytanie odnośnie destruktorów w delphi. Poniżej cały kod programu.
Dlaczego u licha destruktor "Free" nie jest wykonywany automatycznie po
opuszczeniu Button1Click??? Przecież kiedy kliknę przycisk wykona się konstruktor,
ale w miejscu gdzie jest: "//Klasa.Free;" kod ten powinien się wykonać, gdyż opuszczana jest procedura Button1Click i tym samym powinna być skasowana z pamięci klasa - czyli de facto wykonany destructror - w tym przypadku o nazwie Free.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TMojaKlasa = class(TObject)
public
constructor Create;
destructor Free;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMojaKlasa }
constructor TMojaKlasa.Create;
begin
inherited Create;
ShowMessage('zaczynamy :)');
end;
constructor TMojaKlasa.Create(zmienna: string);
begin
Inherited Create;
ShowMessage(zmienna);
end;
destructor TMojaKlasa.Free;
begin
ShowMessage('konczymy :(');
inherited Free;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Klasa : TMojaKlasa;
begin
Klasa:= TMojaKlasa.Create('chu');
//Klasa.Free;
end;
end.