Répétition de touches

Le
jean saint jalmes
Bonjour,

Dans une application VB6.0, je positionne le paramètre KeyPreview des
feuilles à true et j'utilise les évènements Form_KeyDown pour déclancher
différentes actions.

Pendant le déroulement d'une action, je bloque la saisie en plaçant
l'intruction
"me.enebled = false" en début de procédure.

mais cela n'empèche pas l'évènement Form_KeyDown de se produire 2 fois
lorsque l'utilisateur appuie très rapidement sur une touche, un peu comme si
l'instruction "me.enabled = false" n'était pas instantanée.

Y a t-il un moyen de contourner ce problème autrement qu'en testant si une
action est déjà en cours ?

Merci pour votre aide.

Jean
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LE TROLL
Le #18920211
Bonjour,

Y a sans doute plein de moyens, avec le Timer par exemple, lancé au
premier appui et arrêté après traitement complet, entre les deux, rejet de
la saisie clavier.

Par flag aussi:
load dim ok as boolean
okúlse
end sub
'
sub appui
if ok then exit sub
ok=true
traitement
fin de traitement
okúlse
end sub

Etc.

--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"jean saint jalmes" le message de news:
Bonjour,

Dans une application VB6.0, je positionne le paramètre KeyPreview des
feuilles à true et j'utilise les évènements Form_KeyDown pour déclancher
différentes actions.

Pendant le déroulement d'une action, je bloque la saisie en plaçant
l'intruction
"me.enebled = false" en début de procédure.

mais cela n'empèche pas l'évènement Form_KeyDown de se produire 2 fois
lorsque l'utilisateur appuie très rapidement sur une touche, un peu comme
si
l'instruction "me.enabled = false" n'était pas instantanée.

Y a t-il un moyen de contourner ce problème autrement qu'en testant si une
action est déjà en cours ?

Merci pour votre aide.

Jean


bahn po
Le #18923301
jean saint jalmes avait soumis l'idée :
Bonjour,

Dans une application VB6.0, je positionne le paramètre KeyPreview des
feuilles à true et j'utilise les évènements Form_KeyDown pour déclancher
différentes actions.

Pendant le déroulement d'une action, je bloque la saisie en plaçant
l'intruction
"me.enebled = false" en début de procédure.

mais cela n'empèche pas l'évènement Form_KeyDown de se produire 2 fois
lorsque l'utilisateur appuie très rapidement sur une touche, un peu comme si
l'instruction "me.enabled = false" n'était pas instantanée.

Y a t-il un moyen de contourner ce problème autrement qu'en testant si une
action est déjà en cours ?

Merci pour votre aide.

Jean



Essaye form_keyup.
jean saint jalmes
Le #18953481
Merci à tous les deux.

L'utilisation d'un indicateur de "fonction en cours" est une méthode que
j'ai déjà utilisée mais que je souhaitais éviter. En réalité, je teste la
disponibilité de la fenêtre (if enabled then enabled = false etc...).

L'évènement KeyUp n'améliore pas la situation par rapport à KeyDown.

En analysant un peu plus le problème, je me suis apperçu que seul le
contrôle MSHierarchicalFlexgrid accepte les doubles frappes lorsque le
conteneur est désactivé !

Jean
bahn po
Le #18953891
jean saint jalmes a pensé très fort :
Merci à tous les deux.

L'utilisation d'un indicateur de "fonction en cours" est une méthode que
j'ai déjà utilisée mais que je souhaitais éviter. En réalité, je teste la
disponibilité de la fenêtre (if enabled then enabled = false etc...).

L'évènement KeyUp n'améliore pas la situation par rapport à KeyDown.

En analysant un peu plus le problème, je me suis apperçu que seul le
contrôle MSHierarchicalFlexgrid accepte les doubles frappes lorsque le
conteneur est désactivé !

Jean



Et si tu passes l'argument Form1.KeyPreview = False pour bloquer la
saisie ?
Publicité
Poster une réponse
Anonyme