Appeler FormClose sans TCloseAction [Résolu]

zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 29 févr. 2008 à 14:38 - Dernière réponse : zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention
- 29 févr. 2008 à 16:45
Bonjour à tous,

J'ai déclaré une méthode classique appelée lors de la fermeture du programme:
procedure FormClose(Sender: TObject; var Action: TCloseAction);

Par ailleurs, un méhode déclenchée sur l'évènement OnKeyDown de ma TForm1 agit lorsque certaines touches sont pressées:
procedure InterceptKeyboard(Sender: TObject; var Key: Word; Shift: TShiftState);

Dans cette deuxième méthode, je souhaite quitter le programme lorsque la touche pressée est Echap. Mais je n'ai aucun argument de type TCloseAction pour appeler ma première méthode FormClose.

procedure TForm1.InterceptKeyboard(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  if Key = VK_ESCAPE do
   FormClose(Sender, ?);
end;

J'ai essayé caFree, mais c'est une constante, il n'est pas de type variable.
Comment puis-je me tirer d'affaire ?

Bon week-end.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Caribensila 2674 Messages postés jeudi 15 janvier 2004Date d'inscription 11 mai 2018 Dernière intervention - 29 févr. 2008 à 15:12
3
Merci
Salut,

procedure TForm1.InterceptKeyboard(Sender: TObject; var Key: Word; Shift: TShiftState);
  begin
  if Key = VK_ESCAPE then form1.Close;
end;



procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
  begin
  InterceptKeyboard(sender, key, Shift);
end;



procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  begin
  if MessageDlg('Fermer l''application?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
  Action :=caFree
  else
  Action :=caNone;
end;

Merci Caribensila 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 120 internautes ce mois-ci

Commenter la réponse de Caribensila
zwyx 152 Messages postés jeudi 22 novembre 2007Date d'inscription 21 mars 2016 Dernière intervention - 29 févr. 2008 à 16:45
0
Merci
Mais c'est biensûr !
J'avais tout bêtement oublié que la méthode assignée à l'évènement OnClose de la TForm1 était appelé par Form1.Close;
Une fois de plus, je ne sais pas ce que je serais devenu sans CodeS-SourceS.
Merci Caribensila, et bon week-end.
Commenter la réponse de zwyx

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.