Salut,
heu oui le topic date un peu mais ça peut être fort utile
voila une idée qui n'est pas d'expert non plus mais qui peut rendre bien service pour des programmeurs en herbe (à ne pas utiliser pour des applis où l'on a à enregistrer des infos importantes à moins de bien contrôler ce qu'on va faire derrière... enfin bref cela reste à commentaires)
en utilisant les events du clavier on peut avoir quelque-chose de fonctionnel! (http://delphi.about.com/cs/adptips [...] 0802_4.htm):
avec:
procedure TForm1.FormCreate(Sender: TObject) ;
begin
KeyPreview := True;
end; |
puis
procedure TForm1.FormKeyPress
(Sender: TObject; var Key: Char) ;
begin
if key = #27 then cekontveut; //si la touche Esc est pressée...
end; |
meme si c'est pas très "propre" on peut utiliser la caption du bouton qui va exécuter le code à quitter :
tout cela n'est qu'un exemple à mettre en application mais on utilisera:
procedure TForm1.FormKeyPress
(Sender: TObject; var Key: Char) ;
begin
if key = #27 then //si la touche Esc est pressée...
begin
if button1.caption:='Exit' then button1.caption:='Run' ; // voir après sur le reste de l'exemple end;
end; |
par défaut, donc avant le clic sur notre bouton, sa caption doit être "Run":
procedure TForm1.btn1Click(Sender: TObject);
var
i:word;
begin
button1.caption:='Exit'; // tant que l'on exécute notre code, on met notre caption du bouton à "Exit"...
for i:= 1 to 2000000 do
begin
// memo1.lines.add('coucou');
// enfin ce que l'on execute...
if button1.caption='Run' then Exit; // si l'utilisateur a appuyé sur Escape on sort!
end;
button1.caption:='Run'; // fin de la procédure (ou fonction) si personne n'a pressé la touche Escape, on remet la caption de button1 à "Run"
end; |
il faut bien faire attention aux majuscules de nos captions et surtout ne pas inverser nos "état de captions" mais cela fonctionne pas mal
Message édité par Flagad'aware le 18-04-2012 à 13:02:06