Ver Mensaje Individual
  #2  
Antiguo 28-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 31
Lepe Va por buen camino
Cita:
Empezado por CarmaZone
He estado probando y con y sin el cafree la cierra igual,
Por defecto, el parámetro Action vale cafree, por eso da igual ponerlo o no. Existen casos especiales, por ejemplo una ventana MDIChild, lleva en el parámetro Action, el valor caMinimize, por tanto al cerrar, se minimiza.

Cita:
Empezado por CarmaZone
es mejor ponerlo aki o en el onclosequery pq he leido otros post y no me keda clara la diferencia, ya ke pone ke el onclosequery lo cierra pero hace ke no sea visible y luego se ejecuta el onclose y se destruye liberando memoria. Mas o meno lo entendi asi, pero me gustaria me aclararan para conocer mejor su funcionamiento.
En el onCloseQuery solamente tienes una variable Boolean CanClose, en ese evento no puedes hacer nada más.

Sin embargo en el evento OnClose, puedes especificar en el parámetro Action:
caNone // no hacer nada
caFree // liberara de memoria
caHide // esconder el formulario
caMinimize // minimizar

Así que tienes más libertad.

En tu caso concreto, estas preguntando al usuario que si quiere cerrar o no, conceptualmente, se asemeja más a la variable CanClose del OnCloseQuery.

Código Delphi [-]
 procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose :=  MessageDlg(' ¿ Quieres cerrar la ventana ?', mtCustom,[mbYes, mbNo], 0)= mrYes
end;

En la práctica, si sólo es para preguntar al usuario, da igual que lo hagas de una forma u otra.

Un saludo
Responder Con Cita