Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mensaje antes de salir (https://www.clubdelphi.com/foros/showthread.php?t=44366)

jorgegetafe 06-06-2007 10:49:26

Wueno un par de dudas.

Arriba, en la definición de tipos he tenido que poner esto, porque sino decia que ambas funciones no estaban declaradas, no se si estará bien hecho:

Código Delphi [-]
 
PROCEDURE FormCloseQuery(Sender: TObject; var CanClose: Boolean);
PROCEDURE FormClose(Sender: TObject; var Action: TCloseAction);

No me dejaba poner el tform1 delante.

Luego he puesto este codigo:

Código Delphi [-]
 
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  var
    Rta: integer;
  begin
    Rta := MessageBox(0, '¿Quiere usted guardar antes de salir?', 'Advertencia', MB_ICONQUESTION or MB_YESNO);
    if Rta = IDYES then
      DebeGuardar:= True
    else
      DebeGuardar := False;
    CanClose := True; //De cualquier modo debe cerrarse. False para que no se cierre
end;

PROCEDURE TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  BEGIN
    IF DebeGuardar THEN
      Guardar1Click(Sender);
    Action := caFree; //caFree para que libere la memoria ocupada
  END;

Y el programa cuando le doy a cerrar no me hace absolutamente nada. ¿Me podeis ayudar? gracias.

Lepe 06-06-2007 12:06:11

Ya tienes el código, ahora solo tienes que enlazarlo a la ventana. Quiero decir, ahora mismo tienes creados dos procedimientos, pero hace falta decirle que responda cuando se quiere cerrar el form.

Haz un clic sobre la ventana (donde no haya paneles ni botones), ve al inspector de objetos, pestaña eventos, y allí busca el evento FormClose y FormCloseQuery, dale un clic a la lista y elige los que tú has definido para ellos.

Saludos

jorgegetafe 06-06-2007 12:11:43

Ok ya está hecho, ahora ya tiene más nivel jejeje. gracias.


La franja horaria es GMT +2. Ahora son las 11:49:23.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi