PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Récupérer la position d'un ascenseur dans une table
Récupérer la position d'un ascenseur dans une table
Débuté par caime, 03 aoû. 2004 16:29 - 3 réponses
Posté le 03 août 2004 - 16:29
Bonjour,

J'ai besoin de récupérer la position de l'ascenseur horizontal d'une table
mémoire afin de synchroniser une seconde table.
Cependant, je ne peux utiliser événement 'Ascenseur horizontal (WM_HSCROLL)'
de Windev car j'ai remarqué que lorsque l'on se déplace par la touche tab
dans les cellules de la table, cet événement ne se déclenche pas.

Quelqu'un aurait-il une idée sur la manière de procéder ?

Merci d'avance pour les éventuelles réponses.

Christian
Posté le 03 août 2004 - 20:03
Dans le sens horizontal, le code suivant devrait marcher.
Si tu réussi à l'adapter en vertical, post le code cela m'intéresse.

//sur l'événement Ascenseur horizontal de Table1
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" , Handle(Table2)
, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table2) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

// sur l'événement Ascenseur horizontal de Table2
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" , Handle(Table1)
, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table1) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

cordialement JCP


"Allegro" <caime@online.fr> a écrit dans le message de
news:410f8554$1@news.pcsoft.fr...

Bonjour,

J'ai besoin de récupérer la position de l'ascenseur horizontal d'une table
mémoire afin de synchroniser une seconde table.
Cependant, je ne peux utiliser événement 'Ascenseur horizontal (WM_HSCROLL)'
de Windev car j'ai remarqué que lorsque l'on se déplace par la touche tab
dans les cellules de la table, cet événement ne se déclenche pas.

Quelqu'un aurait-il une idée sur la manière de procéder ?

Merci d'avance pour les éventuelles réponses.

Christian

Posté le 03 août 2004 - 20:26
Merci de ta réponse.

Je connais le code que tu m'as transmis et il fonctionne parfaitement
lorsque l'utilisateur déplace l'ascenseur à la souris.

Mon problème, c'est que lorsque l'utilisateur se déplace dans les colonnes
de la table au moyen de la touche 'Tab' (ma table est en saisie),
l'événement Ascenseur horizontal ne se déclenche pas et donc le code de
repositionnement que tu décris n'est pas exécuté.
Le problème est d'ailleurs identique lorsque l'utilisateur entre en saisie
par un clic dans une colonne qui n'est que partiellement visible ->
l'ascenseur horizontal se déplace mais l'événement Ascenseur Horizontal ne
se déclenche pas; donc pas de synchronisation de la table associée.

Le code que tu m'as transmis fonctionne aussi avec l'ascenseur vertical,
mais, d'après mes tests, les ascenseurs verticaux des deux tables doivent
être affichés (ce qui n'est pas nécessaire avec le scrolling horizontal).

Merci de ta réponse.

Christian

"JCP" <puccettijc@aol.com> a écrit dans le message de
news:410fb76c$1@news.pcsoft.fr...

Dans le sens horizontal, le code suivant devrait marcher.
Si tu réussi à l'adapter en vertical, post le code cela m'intéresse.

//sur l'événement Ascenseur horizontal de Table1
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" ,

Handle(Table2)
, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table2) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

// sur l'événement Ascenseur horizontal de Table2
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" ,

Handle(Table1)
, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table1) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

cordialement JCP


"Allegro" <caime@online.fr> a écrit dans le message de
news:410f8554$1@news.pcsoft.fr...

Bonjour,

J'ai besoin de récupérer la position de l'ascenseur horizontal d'une

table
mémoire afin de synchroniser une seconde table.
Cependant, je ne peux utiliser événement 'Ascenseur horizontal

(WM_HSCROLL)'
> > de Windev car j'ai remarqué que lorsque l'on se déplace par la touche
tab
dans les cellules de la table, cet événement ne se déclenche pas.

Quelqu'un aurait-il une idée sur la manière de procéder ?

Merci d'avance pour les éventuelles réponses.

Christian



Posté le 04 août 2004 - 11:28
Essaye de pister les événements de ta table et tiens-nous informés

la fonction Evénement avec 0 pou le message Windows renvoie tous les événements

//
Evénement("proctrace", "maTable", 0)

procedure proctrace(Message, wParam, lParam)
trace("Message " + Message + " wParam " + wParam + " lParam " + lParam)
//


cette méthode m'a permis de trouver les événements suivants :
1743 Redimensionnement d'une colonne lParam+1 = le numéro de la colonne
1735 fin du survol d'un champ
événements à vérifier

"Allegro" <caime@online.fr> a écrit dans le message de
news:410fbcc5$1@news.pcsoft.fr...


Merci de ta réponse.

Je connais le code que tu m'as transmis et il fonctionne parfaitement
lorsque l'utilisateur déplace l'ascenseur à la souris.

Mon problème, c'est que lorsque l'utilisateur se déplace dans les colonnes
de la table au moyen de la touche 'Tab' (ma table est en saisie),
l'événement Ascenseur horizontal ne se déclenche pas et donc le code de
repositionnement que tu décris n'est pas exécuté.
Le problème est d'ailleurs identique lorsque l'utilisateur entre en saisie
par un clic dans une colonne qui n'est que partiellement visible ->
l'ascenseur horizontal se déplace mais l'événement Ascenseur Horizontal ne
se déclenche pas; donc pas de synchronisation de la table associée.

Le code que tu m'as transmis fonctionne aussi avec l'ascenseur vertical,
mais, d'après mes tests, les ascenseurs verticaux des deux tables doivent
être affichés (ce qui n'est pas nécessaire avec le scrolling horizontal).

Merci de ta réponse.

Christian

"JCP" <puccettijc@aol.com> a écrit dans le message de
news:410fb76c$1@news.pcsoft.fr...

Dans le sens horizontal, le code suivant devrait marcher.
Si tu réussi à l'adapter en vertical, post le code cela m'intéresse.

//sur l'événement Ascenseur horizontal de Table1
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" ,
Handle(Table2)

, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table2) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

// sur l'événement Ascenseur horizontal de Table2
hwndbarh est un entier = AppelDLL32( "user32" , "FindWindowExA" ,
Handle(Table1)

, Null , "WDSCROLLBAR" , Null )
SI hwndbarh ALORS
SendMessage( Handle(Table1) , _EVE.wmessage , _EVE.wparam , hwndbarh )
FIN

cordialement JCP


"Allegro" <caime@online.fr> a écrit dans le message de
news:410f8554$1@news.pcsoft.fr...

Bonjour,

J'ai besoin de récupérer la position de l'ascenseur horizontal d'une
table

mémoire afin de synchroniser une seconde table.
Cependant, je ne peux utiliser événement 'Ascenseur horizontal
(WM_HSCROLL)'

de Windev car j'ai remarqué que lorsque l'on se déplace par la touche
tab

dans les cellules de la table, cet événement ne se déclenche pas.

Quelqu'un aurait-il une idée sur la manière de procéder ?

Merci d'avance pour les éventuelles réponses.

Christian