Уроки PureBasic

Categories

Other Sites

Other Sites



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

     

                


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



ОКНА

В PureBasic`е окном называют собственно окно, как оно есть в понимании любого пользователя современной операционной системы. А гаджет - это любой элемент графического интерфейса пользователя (GUI), например кнопка, строка текста, гиперссылка, картинка и т.д.

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

If OpenWindow(WinID, x, y, ширина, высота,"Заголовок окна", флаг) And CreateGadgetList(WindowID(WinID))

EndIf
End

Теперь разберем что все это означает;
OpenWindow(...) - это очевидно команда, открывающая окно и
у нее есть следующие параметры:


CreateGadgetList(WindowID(WinID)) - команда, создающая в нашем окне список гаджетов, для чего он нужен, начинающему программисту не столь существенно, надо просто запомнить что он создается вместе с окном, а в качестве параметра WinID указывается точно такой же WinID как при создании окна.

Теперь давайте попробуем написать первую программу, которая будет состоять из одного окна с заголовком. Для этого откроем редактор purebasic.exe и напишем следующий код:


If OpenWindow(0, 100, 100, 450, 180, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))

EndIf
End


Для запуска программы нажмите F5 или в пункте меню Compiler выберете Compile/Run.
Если все написано верно наше окно появится на экране.
Но разглядеть мы его не успеем, потому что оно сразу исчезнет.

Программа стартовала и закрылась, она просто выполнила все инструкции (OpenWindow(...), CreateGadgetList(WindowID(WinID)) и добралась до строки End.
Кстати если Вы забудете написать End в конце своей программы компилятор это сделает за Вас.

Как же сделать свое окно "устойчивым"?
Для того чтобы оно могло нормально существовать внутри него надо организовать цикл окна - для этого подойдет обычный цикл типа Repeat ... Until.
На примере, представленном ниже, я покажу Вам окно с циклом, которое исчезает когда пользователь сам закроет его. А потом объясню как этот пример работает.


If OpenWindow(0, 100, 100, 450, 180, "Заголовок", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget) And CreateGadgetList(WindowID(0))

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

EndIf
End


Цикл

Repeat
--- код ---
Until>Q=1

означает, что --- код --- будет выполняться раз за разом, пока переменная Q не станет равной 1. Как только условие Q=1 выполнится программа выйдет из цикла и станет выполнять следующие за ним команды.

Уроки PureBasic

Условный оператор:

If условие
--- код ---
EndIf

означает, что --- код --- будет выполнен только если справедливо условие.

Уроки PureBasic

Функция WaitWindowEvent() возвращает id, - универсальный идентификатор последнего нажатого пользователем гаджета, она не имеет параметров. С ее помощью мы можем узнать на какой гаджет в окне кликнул пользователь.
В нашем примере id этого гаджета записывается в переменную A.

Если нажата кнопка "закрыть окно" в правом верхнем углу, то функция WaitWindowEvent() вернет значение, равное константе: #PB_Event_CloseWindow.

Таким образом следующая конструкция


Repeat

A= WaitWindowEvent()

If A=#PB_Event_CloseWindow
Q=1
EndIf

Until Q=1


становится совершенно понятной. Цикл выполняется до тех пор, пока не выполняется условие Q=1. Но переменная Q получит значение 1, только если Функция WaitWindowEvent() вернет значение равное #PB_Event_CloseWindow, то есть пользователь кликнет по кнопке "закрыть окно".

Уроки PureBasic

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


Окно  PureBasic

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

Уроки PureBasic

Примеры флагов

Как уже говорилось выше:
флаг - определяет вид окна и может принимать следующие значения:

Окно  PureBasic

Окно  PureBasic

Окно  PureBasic

Окно PureBasic

Окно PureBasic . . . окно при старте без рамки.

Окно PureBasic . . . окно при старте по центру.

Окно PureBasic . . . окно при старте спрятано.

#PB_Window_Maximize - окно при старте на весь экран.


Уроки PureBasic

 

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