|
Efectivamente Casimiro, Los formularios los creo Yo segun este codigo:
If not Assigned(FrmVentasClienteExpress) then
FrmVentasClienteExpress := tFrmVentasClienteExpress.Create(Self);
Luego lo muestro y posteriormente en el Close desearia liberar la memoria
Si lo hago segun este codigo me despliega un mensaje de "access violation":
procedure TFrmVentasClienteExpress.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
FrmVentasClienteExpress.Free;
FrmVentasClienteExpress := Nil;
end;
Pero si lo hago de esta manera funciona:
procedure TFrmVentasClienteExpress.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
FrmVentasClienteExpress := Nil;
FrmVentasClienteExpress.Free;
end;
No se si de esa manera el Free posterior al nil esta sobrando osea dejar algo asi:
procedure TFrmVentasClienteExpress.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action := caFree;
FrmVentasClienteExpress := Nil;
end;
Tambien estuve utilizando este codigo:
If not Assigned(FrmVentasClienteExpress) then
FrmVentasClienteExpress := tFrmVentasClienteExpress.Create(Self);
Try
FrmVentasClienteExpress.ShowModal;
finally
FrmVentasClienteExpress.Free;
FrmVentasClienteExpress := Nil;
end;
Aca el problema esta en que si ocurre una excepcion el sistema se queda congelado "pegado" y hay que volcar la tarea desde el administrador de tareas de windows.
Que piensan.....
Gracias por la valiosa ayuda!!!
Última edición por rmora fecha: 17-03-2010 a las 17:22:39.
|