• Sábado 20 de Abril de 2024, 14:03

Autor Tema:  ¡haced La Prueba!  (Leído 1343 veces)

phobos

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
¡haced La Prueba!
« en: Viernes 25 de Agosto de 2006, 18:06 »
0
Hola a todos.

Me he animado a colarme en este foro para comentaros una cosa curiosa que he descubierto hace poco. Yo utilizo Builder 6 y un día rebuscando en la ayuda descubro un ejemplo de cómo utilizar una función manejadora del evento OnClose. Representa que creando esta función podemos hacer cosas, entre ellas evitar que se cierre el Form.
Bien, el ejemplo es claro y conciso: haz doble clic sobre el evento OnClose y añade el siguiente código de manera que al final debe quedar algo así:

void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)

{
  if (MessageDlg("Close application ?", mtConfirmation, TMsgDlgButtons() << mbYes << mbNo,0) == mrYes)
    Action = caFree;
  else
    Action = caMinimize;
}

Este código permite o bien cerrar el form o bien minimizar. Ni corto ni perezoso lo pruebo. En un proyecto nuevo y pelado copio el código. Y compilo. Y se me abre la boca de asombro al ver que, una vez pulses el botón de cerrar, pulses el botón que pulses del diálogo el resultado es que siempre se cierra el form. ¿Curioso, no? . Eso sí, seguro que en Delphi funciona...

Saludos!!!

geobeid

  • Miembro activo
  • **
  • Mensajes: 88
    • Ver Perfil
Re: ¡haced La Prueba!
« Respuesta #1 en: Martes 5 de Septiembre de 2006, 21:16 »
0
PROBA CON EL EVENTO "OnCloseQuery" EN VES DEL "OnClose" Y DESPUES ME CONTAS

 :comp:  :kicking:
[size=109]
SI QUERES ENCONTRAR A JESÚS GOOGLEALO
[/size]

phobos

  • Nuevo Miembro
  • *
  • Mensajes: 21
    • Ver Perfil
Re: ¡haced La Prueba!
« Respuesta #2 en: Miércoles 6 de Septiembre de 2006, 16:27 »
0
Hola.

Desde OnCloseQuery no se puede manejar Action. Se puede resolver el problema desde OnCloseQuery, mandando minimizar el form y evitando que se cierre (CanClose = false). También se puede hacer desde OnClose minimizando y haciendo Action =caNone.  
La lástima es que el camino directo que propone Borland no funciona (¿será porque se han despistado y han copiado directamente la ayuda de Delphi?...jeje).

Saludos!!!!