Уроки PureBasic

Categories

Other Sites

Other Sites



             Поиск по сайту

     

                


    Оставить мне сообщение:



Окна и гаджеты часть 2

Как я уже говорил в предыдущей главе гаджеты - это любые элементы графического интерфейса пользователя. То есть это кнопки, текст, ссылки, картинки, ComboBox, панели и многие другие элементы, которые Вы наверняка не раз видели во многих программах.
PureBasic поддерживает большое количество различных гаджетов, но в этой главе я расскажу лишь о самых основных, чтобы показать их принцип, а любой нужный Вам специфический элемент легко найти в справочном руководстве.

Уроки PureBasic

Итак начнем с самого распространенного - с обыкновенной кнопки:

ButtonGadget(id, x, y, Width, Height, Text, Flags)

id - универсальный идентификатор гаджета (кнопки), любое целое число больше 0
x, y - координаты верхнего левого угла кнопки в пикселах, относительно окна
Width, Height - ширина и высота кнопки в пикселах
Text - просто текст на кнопке
Flags - необязательный параметр, который может принимать следующие значения:

#PB_Button_Right
#PB_Button_Left
#PB_Button_Default - текст по середине кнопки
#PB_Button_MultiLine - текст в несколько строк
#PB_Button_Toggle - этот флаг переводит кнопку в режим включить-выключить

Уроки PureBasic

Следующий гаджет - строка текста:

TextGadget(id, x, y, Width, Height, Text, Flags)

Как видно, функция для создания строки текста имеет те же параметры что и для кнопки и эти параметры имеют тот же смысл, только Flags принимает следующие значения:

#PB_Text_Center
#PB_Text_Right
#PB_Text_Border

Я думаю смысл этих флагов интуитивно понятен.
Уроки PureBasic

Вот мы добрались до гиперссылки:

HyperLinkGadget(id, x, y, Width, Height, Text, Color)

И здесь мы видим знакомые параметры, за исключением только Color, который, как нетрудно догадаться, означает цвет, и записывается в следующем виде:

RGB(255,0,0) - красный
RGB(0,255,0) - зеленый
RGB(0,0,255) - синий

Уроки PureBasic

EditorGadget - текстовый редактор, предназначен для ввода информации пользователем.

EditorGadget(id, x, y, Width, Height ,Flags)

Flags может принимать только одно значение - #PB_Editor_ReadOnly, если оно установлено - редактор недоступен.

Уроки PureBasic

Теперь мы можем сделать окно со всеми этими гаджетами и циклом:

If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)

ButtonGadget(1, 10, 10, 330, 20, "OK", #PB_Button_Left)
TextGadget(2, 10, 40, 330, 20, "Text", #PB_Text_Border)
HyperLinkGadget(3, 10, 70, 330, 20, "www.purebasic.com", RGB(0,155,255) )
EditorGadget(4, 10, 100, 330, 290)

Repeat
A= WaitWindowEvent()
If A=#PB_Event_CloseWindow
Q=1
EndIf
Until Q=1

EndIf
End


Уроки PureBasic

Результат выполнения этой программы должен выглядеть примерно следующим образом:

Уроки PureBasic


Уроки PureBasic

Есть гаджеты, состоящие из нескольких частей, пример такого гаджета - панель, на каждой вкладке которой можно располагать разные элементы.
Панель делается так:

PanelGadget(id, x, y, Width, Height)

Добавить вкладку на панель можно используя следующую команду:

AddGadgetItem(id, Position, Text)

Здесь в качестве первого параметра указываем id панели, на которую добавляем вкладку.
Position может быть равен -1 или 1 в зависимости от того хотим мы добавить вкладку с конца или с начала.
Text - название вкладки.

Уроки PureBasic

Пример приложения с панелью ниже:

If OpenWindow(0, 100, 100, 350, 400, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))
PanelGadget(1, 10, 10, 330, 380)

AddGadgetItem(1, -1, "Item 1")
ButtonGadget(2, 30, 30, 50, 20, "OK")

AddGadgetItem(1, -1, "Item 2")
ButtonGadget(3, 30, 30, 50, 20, "Cancel")

CloseGadgetList( )

Repeat
A= WaitWindowEvent()
If A=#PB_Event_CloseWindow
Q=1
EndIf
Until Q=1

EndIf
End


Уроки PureBasic

Обратите внимание, что при создании панели автоматически открывается новый список гаджетов (GadgetList), которые будут находится на ней.

В конце каждая панель должна быть закрыта командой

CloseGadgetList( ).

Результат должен выглядеть так:

Уроки PureBasic
Уроки PureBasic

Теперь, с помощью PureBasic мы умеем писать приложения с графическим интерфейсом, Вы можете потренироваться в мастерстве заполнения окна разнообразными гаджетами, используя стандартное справочное руководство.

Вот только нельзя не заметить, что все наши програмки ведут себя как-то странно, а именно - они никак не реагируют на действия пользователя. Мы можем сколько угодно нажимать на кнопку или кликать на ссылку и при этом совершено ничего не происходит. А все потому, что мы пока упускали из виду очень важный элемент программирования - отработка событий. Событие - это любое действие пользователя по отношению к программе, нажатие кнопки мыши или клавиши, собственно перемещение курсора это уже событие на которое программа может реагировать.

В следующей главе речь пойдет о том как в PureBasic`е реализована эта самая отработка событий.

Уроки PureBasic

 

Используются технологии uCoz