• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Desativar o botão de fechar

helldanger1

GForum VIP
Entrou
Ago 1, 2007
Mensagens
29,631
Gostos Recebidos
1
O código abaixo impede que o evento OnClose seja chamado pelo formulário, inclusive no botão da barra de títulos, visto que ao darmos um click no "x" para fechar a janela, esta chama o evento OnClose.

Nota: esse código não impede o encerramento do programa através da função Terminate() em Button1:



//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;

//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
Action=caNone;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application ->Terminate();
}
//---------------------------------------------------------------------------

Pode ser que queiramos dar alguma opção ao usuário. Nesse caso, por exemplo, podemos chamar uma caixa de mensagens:


void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
if(MessageBox(0, "Deseja realmente fechar o Aplicativo?", "Questionamento...",
4+32+8192) == 6)
// 6 significa botão "SIM" pressionado
Application->Terminate(); // encerra o programa
else
// significa botão "NÃO" pressionado
Action=caNone; // não encerra o programa
}
 
Topo