Evitar el cierre de la pantalla con ALT+F4 o Close

2956 vistas

A veces es interesante evitar que un usuario cierre una pantalla mediant ALT+F4 o el botón de Cerrar de la pantalla (la cruz que hay en la esquina superior derecha) para que use un determinado botón para salir.

Para evitar este tipo de cierre tendremos que codificar el evento OnCloseQuery del formulario y controlar el parámetro CanClose que recive este método.



delphi
  1.   TForm1 = class(TForm)
  2.     ...
  3.   private
  4.     PuedoCerrar: Boolean;
  5.     ...
  6.   end;
  7.  
  8. { en la obertura de la pantalla inicializamos la variable a false }
  9. procedure TForm1.FormShow(Sender: TObject);
  10. begin
  11.   PuedoCerrar := False;
  12. end;
  13.  
  14. { Si pulsa el botón que queremos, la ponemos a true }
  15. procedure TForm1.BotonSalirClick(Sender: TObject);
  16. begin
  17.   PuedoCerrar := True;
  18.   Close;
  19. end;
  20.  
  21. { en el momento del cierre de la pantalla, miramos si podemos cerrar }
  22. procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  23. begin
  24.   CanClose := PuedoCerrar;
  25. end;