OVH Cloud OVH Cloud

WD8 Roulette de la souris

7 réponses
Avatar
Real Phil
Bonjour,

Quelqu'un connaît-il un truc simple pour arriver à faire scroller un texte
dans un champ texte ou RTF en utilisant la roulette de la souris au dessus
du texte au lieu de l'ascenseur ? Comme dans l'aide de Windev.

J'ai bien vu les options disponibles concernant la souris au bas de
l'éditeur de code mais je ne saurais pas quel code placer là.
Je suis étonné qu'on ne puisse pas obtenir cette fonction juste en cliquant
quelque part dans la description du champ.

Réal Phil

7 réponses

Avatar
Francis MOREL
On 1 fév, 07:51, "Real Phil" wrote:
Bonjour,

Quelqu'un connaît-il un truc simple pour arriver à faire scroller un texte
dans un champ texte ou RTF en utilisant la roulette de la souris au dessus
du texte au lieu de l'ascenseur ? Comme dans l'aide de Windev.

J'ai bien vu les options disponibles concernant la souris au bas de
l'éditeur de code mais je ne saurais pas quel code placer là.
Je suis étonné qu'on ne puisse pas obtenir cette fonction juste en cl iquant
quelque part dans la description du champ.

Réal Phil



Normalement si le champ RTF à le focus c'est quasi-automatique (enfin
chez-moi en WD10 et WD11, regarde à ce propos l'exemple "WD Editeur
RTF)".
Si tu veux que la prise de focus soit automatique, tu peux ajouter
dans l'évenement "Survol souris" le code :
SI ChampEnCours() <> ChampSurvol() ALORS DonneFocus(MoiMême)

A +
--
Francis MOREL
Avatar
Real Phil
Bon, merci, ça fonctionne bien maintenant dans mon champ texte et dans le
champ RTF.
MAIS le curseur de saisie (trait vertical) apparaît même si je suis en
affichage seul.
Et je ne peux pas mettre CurseurAffiche(Faux) parce que c'est le curseur de
la souris qui disparaît au lieu du curseur de saisie.

Il y a un truc pour que le curseur de saisie n'apparaisse pas dans un champ
précis ?

Réal Phil
---------------------------------
Normalement si le champ RTF à le focus c'est quasi-automatique (enfin
chez-moi en WD10 et WD11, regarde à ce propos l'exemple "WD Editeur
RTF)".
Si tu veux que la prise de focus soit automatique, tu peux ajouter
dans l'évenement "Survol souris" le code :
SI ChampEnCours() <> ChampSurvol() ALORS DonneFocus(MoiMême)

A +
--
Francis MOREL
Avatar
JeAn-PhI
Real Phil avait soumis l'idée :
Bon, merci, ça fonctionne bien maintenant dans mon champ texte et dans le
champ RTF.
MAIS le curseur de saisie (trait vertical) apparaît même si je suis en
affichage seul.
Et je ne peux pas mettre CurseurAffiche(Faux) parce que c'est le curseur de
la souris qui disparaît au lieu du curseur de saisie.

Il y a un truc pour que le curseur de saisie n'apparaisse pas dans un champ
précis ?

Réal Phil
---------------------------------
Normalement si le champ RTF à le focus c'est quasi-automatique (enfin
chez-moi en WD10 et WD11, regarde à ce propos l'exemple "WD Editeur
RTF)".
Si tu veux que la prise de focus soit automatique, tu peux ajouter
dans l'évenement "Survol souris" le code :
SI ChampEnCours() <> ChampSurvol() ALORS DonneFocus(MoiMême)

A +



il faut que le champs soit en affichage sans sélection

--
Cordialement JeAn-PhI
Avatar
STASZEWSKI André
Bonsoir

--
"JeAn-PhI" a écrit dans le message de news:

Real Phil avait soumis l'idée :
> Bon, merci, ça fonctionne bien maintenant dans mon champ texte et dans


le
> champ RTF.
> MAIS le curseur de saisie (trait vertical) apparaît même si je suis en
> affichage seul.
> Et je ne peux pas mettre CurseurAffiche(Faux) parce que c'est le curseur


de
> la souris qui disparaît au lieu du curseur de saisie.
>
> Il y a un truc pour que le curseur de saisie n'apparaisse pas dans un


champ
> précis ?
>
> Réal Phil
> ---------------------------------
> Normalement si le champ RTF à le focus c'est quasi-automatique (enfin
> chez-moi en WD10 et WD11, regarde à ce propos l'exemple "WD Editeur
> RTF)".
> Si tu veux que la prise de focus soit automatique, tu peux ajouter
> dans l'évenement "Survol souris" le code :
> SI ChampEnCours() <> ChampSurvol() ALORS DonneFocus(MoiMême)
>
> A +

il faut que le champs soit en affichage sans sélection



Et là il y a des chances pour que le scrolling ne marche plus ...


--
Cordialement JeAn-PhI




Cordialement,
André STASZEWSKI
(Gratuit) Photo Visu 3.1 sur www.PlaneteDev.fr.st
Pour me contacter cliquez ici : http://cerbermail.com/?OT0Wnwyzph
Avatar
Real Phil
> Il y a un truc pour que le curseur de saisie n'apparaisse pas dans un


champ précis ?
---------------------------------
il faut que le champs soit en affichage sans sélection

Et là il y a des chances pour que le scrolling ne marche plus ...
>
Cordialement,
André STASZEWSKI


=======================
En effet, le scrolling ne fonctionne plus avec affichage sans sélection
coché.

Alors, on dirait bien que j'ai le choix: soit j'ai un scroll avec la
roulette et un curseur de saisie indésirable ou bien pas de scroll à la
roulette (scroll avec l'ascenseur seulement) mais sans curseur de saisie ;-(

Réal Phil
Avatar
Francis MOREL
Bonjour,

Alors, on dirait bien que j'ai le choix: soit j'ai un scroll avec la
roulette et un curseur de saisie indésirable ou bien pas de scroll à la
roulette (scroll avec l'ascenseur seulement) mais sans curseur de saisie ;-(




Si, si tu peux, mais dans ce cas tu vas être obligé d'écrire un bout
de code
pour gérer l'évèmenent de la roulette même si ton champ n'a pas le
focus.

Par exemple dans le code d'init de la fenêtre tu mets

Evénement("Scroll","*.*",0x20A) // WM_MOOUSEWHEEL = 0x020A

et dans le procédure "Scroll" tu fais un truc du genre :

PROCEDURE Scroll(Message, wParam, lParam)

WM_VSCROLL est un entier = 277
SB_LINEUP est un entier = 0
SB_LINEDOWN est un entier = 1
SB_PAGEUP est un entier = 2
SB_PAGEDOWN est un entier = 3

SI ChampSurvol()="SaisieTexte" ALORS
dwSens est un entier
SI wParam>0 ALORS
dwSens=SB_LINEUP
SINON
dwSens=SB_LINEDOWN
FIN
SendMessage(Handle(SaisieTexte),WM_VSCROLL,dwSens,0)
FIN


Dans mon cas le champ à scroller avec la roulette se nomme
"SaisieTexte".
Tu peux au beoin appeler plusieurs fois SendMessage pour déplacer de
plusieurs lignes, voire aussi utiliser les constantes SB_PAGExx pour
scroller d'une page entière.
Normalement ça marche sans problème, à toi de développer pour en fa ire
exactement ce que tu veux

Pour plus d'info sur les évenements et les constantes à utiliser voir
sur MSDN à
http://msdn.microsoft.com/library/default.asp


Bon dev

A+
--
Francis MOREL
Avatar
Real Phil
Salut Francis,

C'est un vrai charme - ça fonctionne à merveille comme espéré.
Merci beaucoup.

Réal Phil
========================== "Francis MOREL" a écrit dans le message de
news:
Bonjour,

Alors, on dirait bien que j'ai le choix: soit j'ai un scroll avec la
roulette et un curseur de saisie indésirable ou bien pas de scroll à la
roulette (scroll avec l'ascenseur seulement) mais sans curseur de saisie


;-(




Si, si tu peux, mais dans ce cas tu vas être obligé d'écrire un bout
de code
pour gérer l'évèmenent de la roulette même si ton champ n'a pas le
focus.

Par exemple dans le code d'init de la fenêtre tu mets

Evénement("Scroll","*.*",0x20A) // WM_MOOUSEWHEEL = 0x020A

et dans le procédure "Scroll" tu fais un truc du genre :

PROCEDURE Scroll(Message, wParam, lParam)

WM_VSCROLL est un entier = 277
SB_LINEUP est un entier = 0
SB_LINEDOWN est un entier = 1
SB_PAGEUP est un entier = 2
SB_PAGEDOWN est un entier = 3

SI ChampSurvol()="SaisieTexte" ALORS
dwSens est un entier
SI wParam>0 ALORS
dwSens=SB_LINEUP
SINON
dwSens=SB_LINEDOWN
FIN
SendMessage(Handle(SaisieTexte),WM_VSCROLL,dwSens,0)
FIN


Dans mon cas le champ à scroller avec la roulette se nomme
"SaisieTexte".
Tu peux au beoin appeler plusieurs fois SendMessage pour déplacer de
plusieurs lignes, voire aussi utiliser les constantes SB_PAGExx pour
scroller d'une page entière.
Normalement ça marche sans problème, à toi de développer pour en faire
exactement ce que tu veux

Pour plus d'info sur les évenements et les constantes à utiliser voir
sur MSDN à
http://msdn.microsoft.com/library/default.asp


Bon dev

A+
--
Francis MOREL