PureBasic

ScrollBarGadget()

Синтаксис

Result = ScrollBarGadget(#Gadget , x , y , Width , Height , Minimum , Maximum , PageLength [, Flags])

Описание


Создаёт Гаджет "Полоса Прокрутки" (Scroll Bar Gadget) в текущем списке Гаджетов (GadgetList).

Параметры

#Gadget Номер для идентификации нового Гаджета. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y, Width, Height Позиция и размеры нового Гаджета.
Minimum, Maximum Диапазон значений, которые может принять Полоса Прокрутки. Эти значения должны быть от 0 до 10000, чтобы избежать ограничений для некоторых операционных систем.
PageLength Размер отображаемой области, которая является частью полного изображения, её так же называют - 'Страница'

Например, у Вас может быть картинка шириной 100 пикселей, а видите вы только 25 пикселей. То, что вы видите, называется 'страница', в этом примере размер страницы будет 25, параметр Mininum будет 0, а параметр Maximum будет 100. Курсор прокрутки будет в 4 раза меньше, чем планка по которой он движется, так как его размер пропорционален (размер = Maximum / PageLength).
Flags (дополн.) Флаги, позволяющие изменить поведение Гаджета. Этот параметр может быть следующим значением:
  #PB_ScrollBar_Vertical : Полоса прокрутки будет вертикальной (вместо горизонтальной, которая по умолчанию).

Возвращаемое значение

Возвращает не нулевое значение в случае успешного создания Гаджета, в противном случае возвращает ноль. Если в качестве параметра #Gadget использовалось значение #PB_Any, то в случае успеха, возвращаемым значением будет сгенерированный Номер Гаджета.

Комментарии

Вы можете добавить 'Всплывающую мини-подсказку' к этому Гаджету с помощью функции GadgetToolTip().

Для работы с этим Гаджетом можно использовать следующие функции:

- GetGadgetState(): Возвращает текущую позицию Курсора прокрутки, это значение в диапазоне между 'Minimum' и 'Maximum - PageLength + 1'.
- SetGadgetState(): Изменяет текущую позицию Курсора прокрутки.
- GetGadgetAttribute(): С одним из следующих атрибутов:
  #PB_ScrollBar_Minimum   : Возвращает установленную минимальную позицию прокрутки.
  #PB_ScrollBar_Maximum   : Возвращает установленную максимальную позицию прокрутки.
  #PB_ScrollBar_PageLength: Возвращает размер страницы (PageLength).
- SetGadgetAttribute(): С одним из следующих атрибутов:
  #PB_ScrollBar_Minimum   : Изменяет минимальную позицию прокрутки.
  #PB_ScrollBar_Maximum   : Изменяет максимальную позицию прокрутки.
  #PB_ScrollBar_PageLength: Изменяет размер страницы (PageLength).
Событие срабатывает при его использовании. Смотрите примеры ниже.

Пример

If OpenWindow(0, 0, 0, 335, 140, "Гаджет Полоса Прокрутки", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    TextGadget(2, 10, 15, 280, 35, "Полоса Прокрутки Стандартная  (начальная позиция = 50, страница = 30/100)", #PB_Text_Center)
    ScrollBarGadget(0, 10, 52, 280, 20, 0, 100, 30)
    SetGadgetState(0, 50) ; установим 1-ю полосу прокрутки (ID = 0) в 50 из 100
    TextGadget(3, 10, 95, 280, 35, "Полоса Прокрутки Вертикальная  (начальная позиция = 100, страница = 50/300)", #PB_Text_Right)
    ScrollBarGadget(1, 300, 10, 25, 120 , 0, 300, 50, #PB_ScrollBar_Vertical)
    SetGadgetState(1, 100) ; установим 2-ю полосу прокрутки (ID = 1) в 100 из 300
    Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf


Пример События 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, "ScrollBar Standard  (start = 50, page = 30/100)")
    ScrollBarGadget(0, 10, 50, 350, 20, 0, 100, 30)
    SetGadgetState(0, 50) ; Установим первую полосу прокрутки (ID = 0) на 50 из 100
    TextGadget(3, 10, 120, 350, 30, "ScrollBar vertical  (start = 100, page = 50/300)")
    ScrollBarGadget(1, 175, 160, 25, 120 , 0, 300, 50, #PB_ScrollBar_Vertical)
    SetGadgetState(1, 100) ; Установим вторую полосу прокрутки (ID = 1) на 100 из 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", "Использован  ScrollBar 0 ! (" + GetGadgetState(0) +
                                                ")" , #PB_MessageRequester_Ok)
                    Case 1
                        MessageRequester("Info", "Использован ScrollBar 1 ! (" + GetGadgetState(1) +
                                                ")" , #PB_MessageRequester_Ok)

                EndSelect
        EndSelect
    ForEver
EndIf

См. также

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

Поддерживаемые OS

Все

<- ScrollAreaGadget() - Оглавление Gadget - SetActiveGadget()->