PureBasic

ScrollAreaGadget()

Синтаксис

Result = ScrollAreaGadget(#Gadget , x , y , Width , Height , ScrollAreaWidth , ScrollAreaHeight [, ScrollStep [, Flags]])

Описание


Создаёт Гаджет "Область Прокрутки" (Scroll Area Gadget) в текущем списке Гаджетов (GadgetList). Это Гаджет-контейнер, который может содержать один или несколько Гаджетов в своей области прокрутки.

Параметры

#Gadget Номер для идентификации нового Гаджета. В качестве этого параметра можно использовать значение #PB_Any, чтобы сгенерировать этот Номер автоматически.
x, y, Width, Height Позиция и размеры нового Гаджета.
ScrollAreaWidth, ScrollAreaHeight Размеры области прокрутки внутри Гаджета. Они также могут быть меньше параметров Width и Height, в этом случае прокрутка будет отключена.
ScrollStep (дополн.) Шаг прокрутки (в пикселях). На этот шаг происходит прокрутка, когда пользователь нажимает стрелки прокрутки.
Flags (дополн.) Флаги, позволяющие изменить поведение Гаджета. Этот параметр может быть комбинацией следующих значение (с помощью оператора '|'):
  #PB_ScrollArea_Flat       : Плоская рамка
  #PB_ScrollArea_Raised     : Приподнятая рамка
  #PB_ScrollArea_Single     : Одинарная утопленная рамка
  #PB_ScrollArea_BorderLess : Без какой-либо границы
  #PB_ScrollArea_Center     : Если внутренний размер меньше внешнего, внутренняя область автоматически центрируется.

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

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

Комментарии

Этот Гаджет очень полезен когда какой-то Гаджет слишком велик и не помещается в габаритах окна. В таком случае его можно поместить в область прокрутки. Вся прокрутка обрабатывается Гаджетом автоматически. После создания этого Гаджета, все последующие Гаджеты создаются внутри области прокрутки. Когда все нужные Гаджеты созданы, следует вызвать функцию CloseGadgetList() чтобы вернуться к прежнему списку Гаджетов. Впоследствии для добавления других Гаджетов в область прокрутки можно использовать функцию OpenGadgetList().

Следующие функции могут использоваться для работы со ScrollAreaGadget:

GetGadgetAttribute(): с одним из следующих атрибутов:
  #PB_ScrollArea_InnerWidth  : Возвращает ширину (в пикселях) области прокрутки.
  #PB_ScrollArea_InnerHeight : Возвращает высоту (в пикселях) области прокрутки.
  #PB_ScrollArea_X           : Возвращает горизонтальную позицию прокрутки (в пикселях).
  #PB_ScrollArea_Y           : Возвращает вертикальную позицию прокрутки (в пикселях).
  #PB_ScrollArea_ScrollStep  : Возвращает текущее значение шага прокрутки (в пикселях).
SetGadgetAttribute(): с одним из следующих атрибутов:
  #PB_ScrollArea_InnerWidth  : Изменяет ширину области прокрутки (в пикселях).
  #PB_ScrollArea_InnerHeight : Изменяет высоту области прокрутки (в пикселях).
  #PB_ScrollArea_X           : Изменяет текущую горизонтальную позицию прокрутки (в пикселях).
  #PB_ScrollArea_Y           : Изменяет текущую вертикальную позицию прокрутки (в пикселях).
  #PB_ScrollArea_ScrollStep  : Изменяет текущее значение шага прокрутки (в пикселях).

Через EventType() поддерживаются следующие события:
  #PB_EventType_Resize: Размер Гаджета был изменён.
Этот Гаджет поддерживает функции SetGadgetColor() и GetGadgetColor() с типом #PB_Gadget_BackColor для изменения цвета фона.

Событие срабатывает при его использовании. Смотрите пример ниже.

Пример

Procedure BindScrollDatas()
    SetWindowTitle(0, "ScrollAreaGadget " +
                      "(" +
                      GetGadgetAttribute(0, #PB_ScrollArea_X) +
                      "," +
                      GetGadgetAttribute(0, #PB_ScrollArea_Y) +
                      ")" )
EndProcedure

If OpenWindow(0, 0, 0, 405, 240, "ScrollAreaGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    ScrollAreaGadget(0, 10, 10, 390, 220, 575, 555, 30)
    ButtonGadget(1, 10, 10, 230, 30, "Кнопка 1")
    ButtonGadget(2, 50, 50, 230, 30, "Кнопка 2")
    ButtonGadget(3, 90, 90, 230, 30, "Кнопка 3")
    TextGadget(4, 130, 130, 230, 20, "Это содержимое Гаджета Область Прокрутки!", #PB_Text_Right)
    CloseGadgetList()

    BindGadgetEvent(0, @ BindScrollDatas())

    Repeat
        Select WaitWindowEvent()
            Case  #PB_Event_CloseWindow
                End
            Case  #PB_Event_Gadget
                Select EventGadget()
                    Case 0
                        MessageRequester("Инфо", "Была использована прокрутка!(" +
                                                GetGadgetAttribute(0, #PB_ScrollArea_X) +
                                                "," +
                                                GetGadgetAttribute(0, #PB_ScrollArea_Y) +
                                                ")" , #PB_MessageRequester_Ok)
                    Case 1
                        MessageRequester("Инфо", "Кнопка 1 нажата!", #PB_MessageRequester_Ok)
                    Case 2
                        MessageRequester("Инфо", "Кнопка 2 нажата!", #PB_MessageRequester_Ok)
                    Case 3
                        MessageRequester("Инфо", "Кнопка 3 нажата!", #PB_MessageRequester_Ok)
                EndSelect
        EndSelect
    ForEver
EndIf


См. также

GetGadgetAttribute(), SetGadgetAttribute(), ScrollBarGadget()

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

Все

<- ResizeGadget() - Оглавление Gadget - ScrollBarGadget()->

R��)��