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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LE TROLL
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
"jean saint jalmes" a écrit dans 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
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
"jean saint jalmes" <jeansaintjalmes@discussions.microsoft.com> a écrit dans
le message de news:2E9F50D2-49A0-4DF3-A075-488AFAA14A52@microsoft.com...
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 ?
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
"jean saint jalmes" a écrit dans 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
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 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 ?
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
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
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é !
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
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 ?
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 ?
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 ?