Page 1 sur 1

DEFILEMENT TEXTE DANS StatusBarText

Publié : dim. 10/sept./2006 11:46
par david
j'ai un texte contenu dans MONTEXTE$
je l'affiche dans ma StatusBarText incorporée dans ma "If OpenWindow(#Window_0,...."

Code : Tout sélectionner

  StatusBarText(#StatusBar_0,0,  MONTEXTE$) 
j'aurais aimé le faire défiler vers la gauche (comme un scrolling..)
j'ai bien essayé d'utiliser les LEFT/RIGHT/MID pour modifier ma chaine de carracteres dans MONTEXTE$ mais je n'arrive pas à le "déplacer" dans ma variable MONTEXTE$
Il n'y aurait pas une formule "DecalerTextLeft,-1" ..... que j'ai pas trouvé
Ou sinon comment faire pour dire:
((BOUCLE:))
Affiche MONTEXTE$
MONTEXTE$=(...decalage vers la gauche de MONTEXTE$...)
((RETOURNE A LA BOUCLE))
sachant que je n'ai pas de pb de boucle mais bien un probleme de chaine de carractere a travailler....

SVP si quelqu'un peu me donner une piste

Publié : dim. 10/sept./2006 12:46
par Flype
salut,

voilà une des nombreuses facons de faire - notamment ici avec la fonction MID(chaine, position, longueur) :

Code : Tout sélectionner

Global message$ = "PureBasic, Feel the Power ! Example de défilement de texte dans la barre de statut."
Global longueur = Len(message$)

Procedure Defilement()
  
  Shared decalage.l
  
  decalage + 1
  
  If decalage >= longueur
    decalage = 1
  EndIf
  
  StatusBarText(0, 0, Mid(message$, decalage, longueur))
  
EndProcedure

If OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
  
  If CreateStatusBar(0, WindowID(0))
    AddStatusBarField(200)
    AddStatusBarField(640)
  EndIf
  
  StatusBarText(0, 1, "Test")
  
  Repeat
    Select WaitWindowEvent(50)
      Case #Null: Defilement()
      Case #PB_Event_CloseWindow: Break
    EndSelect
  ForEver
  
EndIf

Publié : dim. 10/sept./2006 13:06
par Dr. Dri
petite modification pour que ca défile "en boucle"

Code : Tout sélectionner

Procedure Defilement()
 
  Shared decalage.l
 
  decalage + 1
 
  If decalage >= longueur
    decalage = 1
  EndIf
  
  text$ = Mid(message$, decalage, longueur)
  text$ + " " + Mid(message$, 1, decalage)
  StatusBarText(0, 0, text$)
 
EndProcedure
Dri ;)

Publié : dim. 10/sept./2006 13:48
par Flype
@david
et pour un défilement plus 'fluide' essayes-toi aux threads, ou aux timers.

c'est toi Dri qui avait une lib timer non ?