Emp^cher la fermeture d'un form

vincentstryckmans Messages postés 228 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 25 octobre 2006 - 23 mars 2005 à 13:41
roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 - 26 mars 2005 à 13:10
Salut,



Je souhaite empêcher la fermeture d'un form lorsque mon application est mode d'édition.



Retirer [biSystemMenu] de la proriété BorderIcons du form ne fonctionne
pas car Delphi crée une exception qui signale que cette manip est
interdite dans un event form.onshow.



Capturer l'event form.onclose en le mettant à nil, cela ne marche pas non plus.



Bref comment faire pour empêcher le fermeture du form lorsque l'on clique sur la petit croix en haut à droite de la fenêtre.



Merci de votre aide

Et comme disait ma grand-mère : il y a toujours du soleil derrière les nuages.

Vincent Stryckmans

4 réponses

cs_neko Messages postés 135 Date d'inscription jeudi 14 août 2003 Statut Membre Dernière intervention 12 octobre 2006 1
23 mars 2005 à 15:24
Form1.CloseQuery(Sender: TObject;Var CanClose: Boolean)
Begin
CanClose := False;
End;

J'ai pas delphi sous les yeux mais il me semble bien que c'est ça

bouh
0
roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 2
23 mars 2005 à 22:11
Il y a aussi :

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caNone;
end;

Roud59
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 mars 2005 à 09:47
La dernière proposition de roud59 est scabreuse puisqu'elle empêche la fermeture de la fenêtre. Il ne reste plus qu'à faire ALT+CTRL+DEL et terminer le processus pour sortir de l'application ?

La proposition de Necko est plus proche de la vérité. Il faut juste la rendre plus "dynamique" :
Form1.CloseQuery(Sender: TObject;Var CanClose: Boolean)
Begin
CanClose := Not MaFicheEnModeEdition;
End;


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
http://www.pourflorenceethussein.org
0
roud59 Messages postés 99 Date d'inscription jeudi 16 septembre 2004 Statut Membre Dernière intervention 26 juillet 2007 2
26 mars 2005 à 13:10
Delphiprog : je ne comprends pas pourquoi ma proposition est plus scabreuse. Pour moi elles sont équivalentes et on peut ecrire :

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if MaFicheEnModeEdition then
Action := caNone;
end;

Par contre je suis d'accord que CloseQuery, comme son nom l'indique est plus logique mais j'ai l'habitude d'uiliser FormClose. Je me souviendrais de CloseQuery la prochaine fois.

Roud59
0
Rejoignez-nous