In corrispondenza del menu File / Esci è banalmente possibile annullare l'operazione:
procedure TForm1.MenuItem2Click(Sender: TObject);
Var Risposta: Integer;
begin
Risposta:=Application.MessageBox('Vuoi davvero uscire?','Richiesta di chiusura',1);
If Risposta = 1 Then Application.Terminate;
end;
Vorrei usare la medesima procedura anche quando si preme il pulsante di chiusura del programma (la X in alto a destra della finestra), ma non ho trovato la procedura per tornare al programma se si preme Annulla. Qui di seguito una bozza della procedura, che funziona qualunque tasto si preme.
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
Var Risposta: Integer;
begin
Risposta:=Application.MessageBox('Vuoi davvero uscire?','Richiesta di chiusura',1);
If Risposta = 2 Then ShowMessage('Hai premuto Annulla') // Qui bisogna inserire il codice per annullare l'operazione.
else Application.Terminate;
end;
Come fare per annullare la chiusura del programma?
Questo è già definito in Lazarus
//TCloseAction = (caNone, caHide, caFree, caMinimize);
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
Var Risposta: Integer;
begin
Risposta:=Application.MessageBox('Vuoi davvero uscire?','Richiesta di chiusura',1);
If Risposta = 2 Then
begin
ShowMessage('Hai premuto Annulla'); // Qui bisogna inserire il codice per annullare l'operazione.
CloseAction := caNone;
end
else
begin
CloseAction := caFree;
//Application.Terminate;
end;
end;
Ciao