DEFILEMENT TEXTE DANS StatusBarText

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
david
Messages : 208
Inscription : jeu. 03/févr./2005 21:10

DEFILEMENT TEXTE DANS StatusBarText

Message 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
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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
Image
Dr. Dri
Messages : 2527
Inscription : ven. 23/janv./2004 18:10

Message 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 ;)
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message 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 ?
Image
Répondre