le mieux , c'est de mettre la propriete 'KeyPreview' de ta form a true. De sorte que toutes les touches que tu va presser seront portées a son attention, independemment du controle qui a le focus. Ensuite , lors de l'eventement KeyPress de ta form , tu teste si la touche presée ea la valeur vbkeyescape (27), et si c'est elle, tu met une variable globale a Vrai.
il ne te reste plus qu'au mettre cette valeur drapeau a Faux au debut d'une boucle, d'effectuer ta boucle ( en n'oubliant pas d'y inserer un Dovevents, si celle-ci est longue... ) et de faire finir la boucle si la variable globale definie est a vraie , preuve que la touche echap a bien ete pressee.
esperant avoir ete clair.
dans le doute , cree une fenetre , avec ce que tu veux dedans, et met ce code :
Dim ArretesToi As Boolean
Private Sub Form_Click() Me.Caption = 0 ArretesToi = False 'on initialise le Flag While Not ArretesToi DoEvents ' pour ne pas que l'appli se bloque Me.Caption = Me.Caption + 1 'on fait une action Wend Me.Caption = "Boucle Stoppée , Cliquez sur la fenetre....." End Sub
Private Sub Form_KeyPress(KeyAscii As Integer) If KeyAscii = vbKeyEscape Then ArretesToi = True End Sub
Private Sub Form_Load() Me.KeyPreview = True Me.Caption = "Cliquez sur la fenetre....." End Sub
|
-----------------------------------------------------------------------
By Renfield
thomas_reynald@msn.com
Aucune touche n'a été bléssée lors de la saisie de ce texte..........
-------------------------------
Réponse au message :
-------------------------------
> tu récupère le code ascii...
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > comment faire pour qu'une action ou une boucle s'arrete en appuyant sur la touche echap
>