ScrollBarGadget()

Syntaxe

Resultat = ScrollBarGadget(#Gadget, X, Y, Largeur, Hauteur, Minimum, Maximum, LongueurPage [, Options])
Description
Crée une nouvelle barre de défilement (ascenseur vertical ou horizontal) dans la GadgetList courante.

Arguments

#Gadget Le numéro d'identification du nouveau gadget.

#PB_Any peut être utilisé pour générer automatiquement ce numéro.
X, Y, Largeur, Hauteur La position et les dimensions du nouveau gadget.
Minimum, Maximum L'intervalle de défilement (valeurs comprises entre 0 et 10 000).
LongueurPage Valeur de déplacement de la page.
Un ascenseur permet de se déplacer par page lorque l'on clique dans la barre de défilement mais en dehors du curseur de déplacement
Exemple : La longueur totale du composant (image, document, container etc...) fait 500 pixels. On ne peut en afficher que 100 pixels. Donc on aura une valeur minimale de 0, une valeur Maximale de 500 et une longueur de page de 100. Le curseur sera 5 fois plus petit que la barre de déplacement, car sa dimension est proportionnelle (dimension = Maximum/LongueurPage).
Options (optionnel)
  #PB_ScrollBar_Vertical: La barre de déplacement verticale.

Valeur de retour

Renvoie une valeur non nulle en cas de succès, zéro sinon.

Si #PB_Any a été utilisé pour le paramètre #Gadget, alors la valeur de retour est le numéro d'identification du gadget, généré automatiquement.

Remarques

  - GadgetToolTip() permet d'ajouter une 'mini aide' à ce gadget. 

  Les fonctions suivantes peuvent être appelées pour agir sur la barre de déplacement :
  - GetGadgetState(): Renvoie la position actuelle du curseur (valeur comprise dans l'intervalle Minimum - longueur de la page + 1)
  - SetGadgetState(): Change la position actuelle du curseur.
  - GetGadgetAttribute() avec un des attributs suivants:
    #PB_ScrollBar_Minimum   : Renvoie la position minimale de l'ascenseur.
    #PB_ScrollBar_Maximum   : Renvoie la position maximale de l'ascenseur.
    #PB_ScrollBar_PageLength: Renvoie la longueur de la page. 

  - SetGadgetAttribute(): avec un des attributs suivants:
    #PB_ScrollBar_Minimum   : Change la position minimale de l'ascenseur.
    #PB_ScrollBar_Maximum   : Change la position maximale de l'ascenseur.
    #PB_ScrollBar_PageLength: Change la longueur de la page. 

Exemple

  If OpenWindow(0, 0, 0, 305, 140, "ScrollBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    TextGadget       (2,  10, 25, 250,  20, "Ascenseur standard  (début = 50, page = 30/100)",#PB_Text_Center)
    ScrollBarGadget  (0,  10, 42, 250,  20, 0, 100, 30)
    SetGadgetState   (0,  50)   ; change la valeur de la 1ère barre de défilement (ID = 0) à 50 sur 100
    TextGadget       (3,  10,115, 250,  20, "Ascenseur vertical  (début = 100, page = 50/300)",#PB_Text_Right)
    ScrollBarGadget  (1, 270, 10,  25, 120 ,0, 300, 50, #PB_ScrollBar_Vertical)
    SetGadgetState   (1, 100)   ; change la valeur de la 2ème barre de défilement (ID = 1) à 100 sur 300
    
    ; Enlevez les commentaires si dessous si vous avez un problème d'affichage
    ;     ResizeGadget(2, #PB_Ignore, #PB_Ignore, GadgetWidth(2, #PB_Gadget_RequiredSize), #PB_Ignore)
    ;     ResizeGadget(0, #PB_Ignore, GadgetY(2) + GadgetHeight(2), #PB_Ignore, #PB_Ignore)
    ;     ResizeGadget(1, GadgetX(2) + GadgetWidth(2), #PB_Ignore, #PB_Ignore, #PB_Ignore)
    ;     ResizeGadget(3, #PB_Ignore, #PB_Ignore, GadgetWidth(2, #PB_Gadget_RequiredSize), #PB_Ignore)
    ;     ResizeWindow(0, #PB_Ignore, #PB_Ignore, GadgetX(2) + GadgetWidth(2)+GadgetWidth(1) + 13, #PB_Ignore) 
    
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
  EndIf

Exemple: Evènement scrollBar

  Procedure BindHScrollDatas()
    SetWindowTitle(0, "ScrollBarGadget (" + GetGadgetState(0) + ")" )
  EndProcedure

  Procedure BindVScrollDatas()
    SetWindowTitle(0, "ScrollBarGadget (" + GetGadgetState(1) + ")" )
  EndProcedure


  If OpenWindow(0, 0, 0, 400, 400, "ScrollBarGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    TextGadget       (2,  10, 25, 350,  30, "Ascenseur standard  (début = 50, page = 30/100)")
   ScrollBarGadget  (0,  10, 50, 350,  20, 0, 100, 30)
    SetGadgetState   (0,  50)   ; change la valeur de la 1ère barre de défilement (ID = 0) à 50 sur 100
    TextGadget       (3,  10, 120, 350,  30, "Ascenseur vertical  (début = 100, page = 50/300)")
    ScrollBarGadget  (1, 175, 160,  25, 120 ,0, 300, 50, #PB_ScrollBar_Vertical)
    SetGadgetState   (1, 100)   ; change la valeur de la 2ème barre de défilement (ID = 1) à 100 sur 300
  
    BindGadgetEvent(0, @ BindHScrollDatas())
    BindGadgetEvent(1, @ BindVScrollDatas())
  
    Repeat 
      Select WaitWindowEvent() 
        Case  #PB_Event_CloseWindow 
          End 
        Case  #PB_Event_Gadget 
          Select EventGadget()
            Case 0
              MessageRequester("Info","L'ascenseur 0 a été utilisé ! (" + GetGadgetState(0) +
                                      ")" ,#PB_MessageRequester_Ok)
            Case 1
              MessageRequester("Info","L'ascenseur 1 a été utilisé ! (" + GetGadgetState(1) +
                                    ")" ,#PB_MessageRequester_Ok) 
            
          EndSelect 
      EndSelect
    ForEver 
  EndIf

Voir aussi

GetGadgetState(), SetGadgetState(), GetGadgetAttribute(), SetGadgetAttribute(), ScrollAreaGadget()

OS Supportés

Tous

<- ScrollAreaGadget() - Gadget Index - SetActiveGadget() ->