Hola a todos y tengo una duda y es justamente si el destructor destruye todos los objetos y propiedades heredados o tengo que hacerlo manualmente aquí les dejo un ejemplo sencillo que veo que aun puedo acceder a la propiedad TRect.
Código:
type
TRecuadro = class
private
FRect: TRect;
public
constructor Create;
destructor Destroy; override;
procedure Dibujar(Pain: TPaintBox);
property Recta: TRect read FRect;
end;
.....
constructor TRecuadro.Create;
begin
inherited;
FRect.Top:= 0;
FRect.Bottom:= 50;
FRect.Left:= 0;
FRect.Right:= 50;
end;
destructor TRecuadro.Destroy;
begin
//aqui hago manualmente la destruccion 1 x 1? pense que era automático
inherited;
end
procedure TRecuadro.Dibujar(Pain: TPaintBox);
begin
Pain.Canvas.Rectangle(0,0,50,50);
end;
procedure TForm1.sButton1Click(Sender: TObject);
var mar: TRecuadro;
begin
mar:= TRecuadro.Create;
edit1.Text:= IntToStr(mar.FRect.Right);
mar.Dibujar(PaintBox1);
mar.Free;
edit2.Text:= IntToStr(mar.FRect.Right)
end;
y en el edit2 me aparece aun la propiedad. Esta bien esto?