[..] Afficher texte défilant

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
OverSlek
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mar. 07 juil. 2009 20:21
Status : Hors ligne

[..] Afficher texte défilant

#1

Message par OverSlek »

Bonjour :)

Je vous explique ce que j'aimerai faire :

Code : Tout sélectionner

1.Si vous ne souhaitez pas ajouter de sondage à votre sujet, laissez ces champs vides.
2.Question du sondage:
3.Options du sondage:
4.Placez chaque option sur une ligne différente. Vous pouvez entrer jusqu’à 10 options.   
5.Option(s) par utilisateur:
6.Ceci est le nombre d’options que chaque utilisateur peut choisir quand il vote.   
7.Durée du sondage:   jours Mettre “0” ou laissez vide pour ne jamais terminer le sondage.
8.Permettre de voter à nouveau:
9.Si activé, les utilisateurs peuvent changer leur vote.    
Dans ce texte, j'aimerai par exemple que les 4 premières lignes s'affichent ...
Ensuite que quand la 5éme arrive, la 1ère disparaisse etc ...
Ce qui devrait faire :

Code : Tout sélectionner

1.Si vous ne souhaitez pas ajouter de sondage à votre sujet, laissez ces champs vides.
2.Question du sondage:
3.Options du sondage:

Code : Tout sélectionner

2.Question du sondage:
3.Options du sondage:
4.Placez chaque option sur une ligne différente. Vous pouvez entrer jusqu’à 10 options.  

Code : Tout sélectionner

3.Options du sondage:
4.Placez chaque option sur une ligne différente. Vous pouvez entrer jusqu’à 10 options.   
5.Option(s) par utilisateur:
Etc ... Mais je sais pas vraiment comment m'y prendre ;/
Marchi ;p
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..]Afficher texte défilant

#2

Message par timmalos »

Dans une GUI Vous affichez vos 3 controles, sleep() , puis GUICtrlSetPos()
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Afficher texte défilant

#3

Message par Tlem »

Dans quoi s'affiche votre texte ?
D'où vient le texte ? D'un fichier ou coder dans le script ?
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é".
OverSlek
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mar. 07 juil. 2009 20:21
Status : Hors ligne

Re: [..] Afficher texte défilant

#4

Message par OverSlek »

Hum disons dans une variable pour le texte ^^
Ou bien dans ce que vous voulez, je me débrouillerais après pour le remettre dans une variable.

Le texte n'est pas défini à l'avance bien entendu, il est lu // parsé et ensuite affiché au fur et à mesure ...

€dit: GUICtrlSetPos ne correspond pas vraiment à ce que je veux ...
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Afficher texte défilant

#5

Message par Tlem »

La manière dont vous comptez affichez le texte conditionne certaines choses.
Donc expliquez nous comment vous comptez afficher le texte, ou même encore mieux créez une mini GUI pour nous montrer.
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
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Afficher texte défilant

#6

Message par Iste »

Perso, je dirais :
tu met ton texte dans un array, une ligne par case

Code : Tout sélectionner

$texte = StringSplit("blabla",@CRLF,1)
Ensuite, pour ajouter une ligne dedan ;

Code : Tout sélectionner

_ArrayAdd($texte,"blabla en plus")
$texte[0] += 1
Enssuite, pour afficher les 5dernieres lignes par exemple,

Code : Tout sélectionner

$texte_a_afficher = ""
$nb = 5
For $i = 1 To $nb
    $texte_a_afficher &=  $texte[$texte[0]-$nb+$i] & @CRLF
Next
Apres tu peux

Code : Tout sélectionner

GUICtrlSetData($crtl,$texte_a_afficher)
Pour mettre a jour le texte

Attention avec les "lignes de plusieurs lignes"

Mais comme les autres l'ont dit, pour qu'on puisse vous aider, vous devez nous donner du code.
Pas forcément tout, mais au moins un bout qui illustre votre probleme...

Voila, j'espere avoir bien compris le probleme
Signez ici
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Afficher texte défilant

#7

Message par timmalos »

Avec une array on peut meme utiliser _ArrayPush qui va virer la premiere ligne, ce qui est ce que vous recherchez.
OverSlek
Niveau 2
Niveau 2
Messages : 19
Enregistré le : mar. 07 juil. 2009 20:21
Status : Hors ligne

Re: [..] Afficher texte défilant

#8

Message par OverSlek »

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <array.au3>

#Region ### START Koda GUI section ### Form=
$Form1_1 = GUICreate("Form1", 649, 728, 194, 126)
$Edit1 = GUICtrlCreateEdit("", 24, 144, 183, 553)
GUICtrlSetData(-1, "")
$Input1 = GUICtrlCreateInput("Test 1", 96, 104, 337, 21)
$Button1 = GUICtrlCreateButton("Ajouter", 464, 104, 75, 25)
$Button2 = GUICtrlCreateButton("Lire", 544, 104, 75, 25, 0)
#EndRegion ### END Koda GUI section ###
GUISetState(@SW_SHOW)

global $texte, $_texte, $texte_a_afficher
While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        
        Case $Button1
            $_texte &= GuiCtrlRead($Input1) & @CRLF
            $texte = StringSplit($_texte, @CRLF,1)
            _ArrayAdd($texte, $_texte)  
            GUICtrlSetData($Input1, "Test " & $texte[0])
            $texte[0] += 1
            
        Case $Button2
            $nb = 10
            $texte_a_afficher = ""
            If(UBound($texte) > $nb) Then       
                For $i = 0 To $nb
                    $last = $texte[0]-$nb+$nb-2
                    If $texte[0]-$nb+$i <= $last Then $texte_a_afficher & =  $texte[$texte[0]-$nb+$i] & @CRLF
                    GUICtrlSetData($Edit1, $texte_a_afficher)
                Next
            EndIf
            
    EndSwitch
WEnd
 
Voila ce que je me suis fait =)
C'est un peu porcinet, mais tant que sa marche :)
Merci pour l'aide :)

€dit : Je vais m'informer sur l'arrayPush ...
Répondre