Hola.
La verdad es que no veo claramente como estas usando esas clases, pero para crear y liberar recursos dispones de los constructores y destructores. Si
TPresupuesto crea un
TCliente, es su responsabilidad liberarlo.
Como ejemplo:
Código Delphi
[-]
....
type
TCliente = class
private
FId: Integer;
FNombre: string;
public
property ID: Integer read FId write FId;
property Nombre: string read FNombre write FNombre;
end;
TPresupuesto = class
private
FId: Integer;
FCliente: TCliente;
public
property Id : Integer read FId write FId;
property Cliente: TCliente read FCliente write FCliente;
constructor Create;
destructor Destroy; override;
end;
constructor TPresupuesto.Create;
begin
inherited;
FCliente := TCliente.Create; end;
destructor TPresupuesto.Destroy;
begin
if Assigned(FCliente) then
FreeAndNil(FCliente); inherited;
end;
Saludos