Bueno al final lo he resuelto de la siguiente manera
Código:
private
{ Private declarations }
DoClose:Boolean;
//.....................................................
procedure TfrmMensajes.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=DoClose;
If CanClose =False Then
Begin
frmMensajes.Hide;
End;
DoClose:=True;
end;
Vereis que al fina pongo la variable DoClose a True. esto es por que me encontre con el problema que al intentar cerrar el PC si la aplicacion se encuentra con el DoClose:=False no me permite cerrar el PC
y despues en el OnShow del Form lo ponfo de nuevo a false.