PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Traitement automatique d'événements sur une table.
Traitement automatique d'événements sur une table.
Débuté par guest, 27 nov. 2006 18:26 - 5 réponses
Posté le 27 novembre 2006 - 18:26
Bonjour,
J’ai peut-être mal cherché sur le forum, mais dans tous les cas, je n’ai pas trouvé une réponse qui me convienne. Alors je me lance.

Comment fait-on pour empêcher un traitement qui se fait automatiquement sur une table ?

Dans mon cas précis, j’aimerais que lorsque je clique sur mon clavier "flèche bas", que ma sélection ne descende pas d’une ligne. J’aimerais qu’il ne se passe rien.

Merci a celui qui me débusquera une réponse…
Posté le 27 novembre 2006 - 20:40
J'ai pas testé mais voilà :

Sur le code de ta table, section WM_KEYDOWN (touche enfoncé) tu insère un code du genre :

SI ToucheEnfoncée(CODEDELATOUCHE) ALORS
MONACTION()
FIN

N'oubli pas de récupérer le fichier keyconst.wl

EXTERNE "KEYCONST.wl"

Et Winconst.wl

> Ces fichiers sont dans le dossier WinDev 10\Personnel\Externe

Dans ces fichiers tu pourras récupérer les constantes des touches que tu souhaites manipuler.

Good luck.
Chris.
Posté le 27 novembre 2006 - 20:40
Bonjour,

je te propose ceci qui est du bidouillage mais qui devrait focntionner:

tu branches un evenement sur ta table dans Initialisation
Evénement("pl_KeyDown", "TABLE", WM_KEYDOWN)

dans la procédure pl_KeyDown:
SI ToucheEnfoncée(VK_DOWN) ALORS
TableSelectPlus(Table,TableSelect(Table))
FIN

Voilà pas sur à 100% mais ça me paraît pas trop mal.

Bon dev,

Philippe

Laure F a présenté l'énoncé suivant :

Bonjour,
Jââ0AC™ai peut-être mal cherché sur le forum, mais dans tous les cas, je nââ0AC™ai pas
trouvé une réponse qui me convienne. Alors je me lance.

Comment fait-on pour empêcher un traitement qui se fait automatiquement sur
une table ?

Dans mon cas précis, jââ0AC™aimerais que lorsque je clique sur mon clavier "flèche
bas", que ma sélection ne descende pas dââ0AC™une ligne. Jââ0AC™aimerais quââ0AC™il ne se
passe rien.

Merci a celui qui me débusquera une réponseââ0AC¦


--
Philippe SAINT-BERTIN
Accastillage Diffusion
Mail: psaintbertin-no spam@accastillage-diffusion.fr
Posté le 27 novembre 2006 - 20:41
Bonjour.

Voir du coté de Evenement,
Exemple:

dans le code d'initialisation de la table (dans l'Exemple,elle s'appelle GrilleFamille)

Evénement("CaptureEveClavier","GrilleFamille",256)

Et la procédure locale

PROCEDURE CaptureEveClavier(Message, wParam, lParam)

_EVE.Retour=0

Cela devrait s'approcher du résultat désiré.

Michel, Montréal
Posté le 28 novembre 2006 - 11:57
Merci beaucoup pour les propositions !!!

La solution qui me convient est celle de Lahellec Michel (Grand merci), ça permet de bloquer toutes les actions venant du clavier.

Les soucis avec les autres solutions, c'est que l'événement s'exécute tout de même après le traitement de la procédure.
Posté le 28 novembre 2006 - 12:00
Bonjour,

Oui le _Eve.retour = 0 est la solution "passe partout" pour inhiber une
action standard. J'en ai fait hier un billet car j'avais eu à bloquer
l'action de la roulette de la souris sur un champ ascenseur !

Elian Lacroix
elian.lacroix@gmail.com
http://elianlacroix.blogspot.com

"Lahellec Michel" <kerloic.armor@sympatico.ca> a écrit dans le message de
news: 456b2c7b@news.pcsoft.fr...

Bonjour.

Voir du coté de Evenement,
Exemple:

dans le code d'initialisation de la table (dans l'Exemple,elle s'appelle
GrilleFamille)

Evénement("CaptureEveClavier","GrilleFamille",256)

Et la procédure locale

PROCEDURE CaptureEveClavier(Message, wParam, lParam)

_EVE.Retour=0

Cela devrait s'approcher du résultat désiré.

Michel, Montréal