vincentstryckmans
Messages postés228Date d'inscriptionlundi 5 avril 2004StatutMembreDernière intervention25 octobre 2006
-
23 mars 2005 à 13:41
roud59
Messages postés99Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention26 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.
cs_Delphiprog
Messages postés4297Date d'inscriptionsamedi 19 janvier 2002StatutMembreDernière intervention 9 janvier 201332 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;
roud59
Messages postés99Date d'inscriptionjeudi 16 septembre 2004StatutMembreDernière intervention26 juillet 20072 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.