[R] Faire défiler 2 Edit en même temps

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

[R] Faire défiler 2 Edit en même temps

#1

Message par TT22 »

Bonsoir :wink: ,

Voilà mon problème :
Je crée une GUI avec 2 Edit côte à côte, je voudrais que lorsque l'on fasse défiler un Edit, l'autre défile en même temps.

Voilà, en espérant que vous avez compris,

Merci d'avance...
Modifié en dernier par TT22 le dim. 06 nov. 2011 12:30, modifié 1 fois.
Cordialement,
TT22
Avatar du membre
Ahbadiane
Niveau 5
Niveau 5
Messages : 139
Enregistré le : jeu. 20 déc. 2007 22:39
Localisation : Paris
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#2

Message par Ahbadiane »

Bonsoir,

_GUICtrlEdit_LineScroll(), non ?

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#Include <GuiEdit.au3>
Global $Form1 = GUICreate("Form1", 408, 106, 349, 206)
Global $Edit = _GUICtrlEdit_Create($Form1, "Texte à faire défiler - Texte à faire défiler - Texte à faire défiler - Texte à faire défiler - Texte à faire défiler - Texte à faire défiler - Texte à faire défiler - Texte à faire défiler", 8, 24, 377, 21)
Global $ButtonM = GUICtrlCreateButton("<<<", 104, 56, 75, 30)
Global $ButtonP = GUICtrlCreateButton(">>>", 204, 56, 75, 30)
GUISetState(@SW_SHOW)
_GUICtrlEdit_SetSel($Edit, 1, 1)
Global $iPos = 1
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ButtonP
            $iPos += 1
            _GUICtrlEdit_LineScroll($Edit, $iPos, 1)
        Case $ButtonM
            $iPos -= 1
            _GUICtrlEdit_LineScroll($Edit, $iPos, 1)
    EndSwitch
WEnd
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#3

Message par TT22 »

Non, ce n'est pas ça :?
En fait, je voudrais qu'avec un code comme ça :
► Afficher le texte
Lorsque l'on bouge l'Edit de gauche de façon à ce que la première ligne soit "Ligne 5", l'Edit de droit bouge en même temps de façon à ce que la première le devienne aussi "Ligne 5".

Bon, c'est vrai que ce n'est pas très clair mais j'espère que vous avez compris cette fois :wink:
Cordialement,
TT22
Avatar du membre
moi
Niveau 7
Niveau 7
Messages : 370
Enregistré le : sam. 09 juil. 2011 22:14
Localisation : devant sont ordinateur
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#4

Message par moi »

tu fait un input dans la GUI. tu entre le numéro de ligne tu appuis sur un bouton OK.
et la tu utilise _GUICtrlEdit_LineScroll() sur les deux Edit.

??? :)x===>
le problème ce n'est pas un problème, le seul problème ici c'est nous.

j'aime NYAN CAT Image
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#5

Message par TT22 »

Non, je veux que ça se commande avec le scroll :wink:
Cordialement,
TT22
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#6

Message par TT22 »

Image
Cordialement,
TT22
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#7

Message par mikell »

ça va, ça va ! on se calme ... Image
Les "up" c'est pour les forums de kikoolol et de toute façon ça fera pas avancer les choses plus vite

Bref bon ouala ce que tu veux

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#Include <GuiEdit.au3>

$Form1 = GUICreate("Form1", 500, 250)
$Edit1 = GUICtrlCreateEdit("",10,10,235,230)
$Edit2 = GUICtrlCreateEdit("",255,10,235,230)
GUISetState()
$text = ""
For $i = 1 To 50
    $text &= "Ligne " & $i & @CRLF
Next
GuiCtrlSetData($Edit1, $text)
GuiCtrlSetData($Edit2, $text)

While 1
$ind_1 = _GUICtrlEdit_GetFirstVisibleLine($Edit1) 
$ind_2 = _GUICtrlEdit_GetFirstVisibleLine($Edit2) 
If $ind_1<$ind_2 Then _GUICtrlEdit_Scroll($Edit2, 0)   ; $SB_LINEUP
If $ind_1>$ind_2 Then _GUICtrlEdit_Scroll($Edit2, 1)   ; $SB_LINEDOWN

Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
        Exit
EndSwitch
WEnd
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#8

Message par Tlem »

Edit : J'ai été devancé par mikell. Ceci dit, sa solution ne fonctionne pas en temps réel :roll: . Donc selon vos besoins lisez la suite. :mrgreen:

Une callback sur chaque Edit pour vérifier si déplacement vertical, puis on applique le même déplacement à l'autre Edit.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#9

Message par TT22 »

Merci à vous deux, je passe en résolu.
mikell a écrit :ça va, ça va ! on se calme ... Image
C'est la première fois que j'utilise un up et ce forum les tolères (avec modération) :P
Et en plus, ça a fonctionné, j'ai ma réponse :wink:
Cordialement,
TT22
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Faire défiler 2 Edit en même temps

#10

Message par mikell »

Tlem a écrit :Ceci dit, sa solution ne fonctionne pas en temps réel :roll:
Expliquez... chez moi si je scrolle l'edit 1, ça scrolle l'edit 2 de façon identique, et c'est bien ce qui avait été demandé... :roll:
Le même moins consommateur de ressources
► Afficher le texte
Tlem a écrit :vérifier si déplacement vertical, puis on applique le même déplacement à l'autre Edit.
Et avec _GUICtrlEdit_GetFirstVisibleLine, la condition sur les index de lignes et _GUICtrlEdit_Scroll je fais quoi, alors ? :P
De plus mon script a le mérite d'être simple, surtout si on ne garde que les fonctions nécessaires de GuiEdit.au3 ^^

Je reconnais toutefois que ça aurait été plus "propre" avec un GuiRegisterMsg
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#11

Message par Tlem »

:lol:
Je vois que vous êtes aussi susceptible sensible que moi ...

J'ai bien dit que votre code fonctionnait, mais pas en temps réel. Il faut relâcher le clic de la souris sur le curseur pour que le deuxième édit ce mette à jour. J'ai simplement supposé que TT22 voulait cela en temps réel, c'est à dire que lors du déplacement de l'edit 1, l'edit 2 bouge simultanément.

Ceci dit, comme je l'ai précisé, 'selon vos besoins lisez la suite', donc rien de spécial, juste deux solutions. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
TT22
Membre émérite
Membre émérite
Messages : 1566
Enregistré le : lun. 18 avr. 2011 15:21
Localisation : La Quatrième Dimension
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#12

Message par TT22 »

Tlem a écrit :Je vois que vous êtes aussi susceptible sensible que moi ...
Quel moi ? (celui-là ou celui-là ?)
Tlem a écrit :J'ai simplement supposé que TT22 voulait cela en temps réel
Cela n'a pas de grande importance (je prend le code de Mikell car il est déjà programmé :roll: )
Cordialement,
TT22
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#13

Message par Tlem »

Mon message est à la suite de celui de mikell et je ne précise au autre participant, donc il est adressé à ... mikell.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#14

Message par mikell »

Tlem a écrit :J'ai bien dit que votre code fonctionnait, mais pas en temps réel. Il faut relâcher le clic de la souris sur le curseur pour que le deuxième édit ce mette à jour.
Ah voilà pourquoi je pigeais pas...
C'est bizarre parce que quand je teste, si je garde le bouton gauche pressé sur la barre de scroll de l'edit 1 et si je balade cette barre en haut ou en bas, ça me balade aussi la barre de scroll de l'edit 2, exactement comme si je manipulais la barre de l'edit 2... si je le fais vraiment très vite (avec la roulette de la souris par exemple) alors là j'ai un léger retard mais c'est tout :shock:

Heu par contre ça m'intéresserait bien de voir comment vous gèreriez ça avec un callback parce que là je vois pas... :cry:
Tlem a écrit :Je vois que vous êtes aussi susceptible sensible que moi ...
Comment, vous n'allez quand même pas avoir le culot de prétendre que vous ne le découvrez que maintenant :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#15

Message par Tlem »

1 - Sous XP (en tout cas sur mon poste), le comportement est différent.

2 - [Mode mauvaise foi ON]
Si si, je le découvre que maintenant.
[Mode mauvaise foi OFF] :mrgreen:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#16

Message par mikell »

Bah j'ai un XP SP3 x86 ... comprends pas.
Alors vous voulez bien me le montrer ce callback ? je sèche...
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#17

Message par Tlem »

Ben, il me faudrait un peut de temps (et c'est ce qui me manque le plus en ce moment ...).
Mais si je trouve une demi-heure ou une heure à consacrer à cela, je vous en ferait part.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#18

Message par mikell »

Merci ça serait sympa
J'ai du mal avec ces callback, ça veut pas rentrer :|
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11830
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#19

Message par Tlem »

Il faut pas forcément essayer de le faire rentrer (en tout cas, moi ça rentre pas plus) mais avoir une bonne connexion internet, accès aux forums AutoIt et le temps de chercher. ;)

Voilà quelque chose de fonctionnel.
Je sais d'avance ce que vous allez dire, mais le résultat final est là ! :P
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [R] Faire défiler 2 Edit en même temps

#20

Message par mikell »

Tlem a écrit :Je sais d'avance ce que vous allez dire
Quoi ?
Que ce script est une usine à gaz ? Que RichEdit est une vraie catastrophe bouffeuse de ressources ? Qu'on s'embarque 1 Mo d'includes avec pour résultat des scrolls tremblotants sur les edit ?
Et bien non je ne le dirai pas :P

Merci en tout cas :mrgreen:
Je garde le script pour essayer une fois de plus de comprendre les finesses de GUIRegisterMsg et de ces foutues fonctions WM
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre