zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016
-
29 févr. 2008 à 14:38
zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016
-
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 ?
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 201918 29 févr. 2008 à 15:12
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;
zwyx
Messages postés146Date d'inscriptionjeudi 22 novembre 2007StatutMembreDernière intervention21 mars 2016 29 févr. 2008 à 16:45
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.