Impedir que o form seja fechado com Alt+F4 no Delphi

Este é um problema fácil de resolver. Vejamos porque.

Toda vez que um form recebe um comando para ser fechado, 
tal como Form1.Close ou mesmo uma mensagem WM_CLOSE, o evento
OnCloseQuery é disparado. Este evento passa um parâmetro por
referência normalmente chamado CanClose. Se alternarmos o valor
deste parâmetro para false o processo de fechar o formulário 
será cancelado.



Uma vez que queremos impedir que o form seja fechado com 
Alt+F4, temos que dar ao usuário outra forma de fechá-lo.
Neste exemplo vamos colocar um botão para esta tarefa.

Vamos aos passos:

1. Declare um campo (variável) na seção private do Form:
  
   private
     FPodeFechar: boolean;

2. No evento OnCreate do form coloque:

   FPodeFechar := false;

3. No evento OnCloseQuery do form coloque:

   CanClose := FPodeFechar;

4. Coloque um botão no form e no seu evento Click coloque:
   
   FPodeFechar := true;
   Close;