Ver Mensaje Individual
  #2  
Antiguo 10-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No es que no libere completamente el formulario. Recuerda que una variable de tipo objeto es en realidad un puntero al objeto. Al usar Free se libera la memoria asignada al objeto pero el puntero sigue apuntando a una porción de memoria que ya no es válida. En algún momento tienes que volver a poner el puntero en nil. Una comparación como

if Assigned (FMenuPrecios) then

realmente no verifica si el objeto existe o no, únicamente verifica si la referencia a dicho objeto (la variable) es nil o no. Es decir, la comparación es equivalente a:

if FMenuPrecios <> nil then

En el evento OnClose podrías intentar poner

FMenuPrecios := nil;

// Saludos
Responder Con Cita