пятница, 18 января 2019 г.

WinBinder. Создание форм

WinBinder. Создание форм

Автор: Притолюк Максим (f0rm4t@satka.ru)
Смотрите также: Знакомство с WinBinder
Единственное назначение библиотеки WinBinder – создание GUI-форм для Windows.
Любое окно, будь оно родительским или всплывающим, создается функцией wb_create_window. Она находится в самой библиотеке. Чтобы использовать эту функцию, необходимо подключить к проекту файл winbinder.php, который находится в каталоге phpcode/include.
Синтаксис функции таков:

int wb_create_window (int parent, int wclass, string [caption], int [xpos], int [ypos], int [width], int [height], int [style], int [param]);

Первый параметр – parent - имя окна родителя. Если создается главное окно, то должно быть пустым, то есть NULL.

Второй – wclass – класс окна. Вот список доступных значений:
ResizableWindow - простое окно;
AppWindow – окно определенного размера;
NakedWindow – окно определенного размера, без рамки и заголовка;
ModalDialog – всплывающее окно, блокирующее работу программы до его закрытия;
ModelessDialog – простое всплывающее окно;
PopupWindow – еще одно простое всплывающее окно;
ToolDialog – всплывающее окно с маленьким заголовком.
Затем идет заголовок окна, позиция по горизонтали, позиция по вертикали, ширина, высота, стиль окна и его параметры.

Для позиционирования окна по центру можно использовать константу WBC_CENTER. Список всех доступных констант приведен в официальном мануале или на сайте разработчиков библиотеки по адресу http://winbinder.org/manual/reference/constants.html.

Ниже находится исходный код пустой формы.

<?phpinclude "E:/WB/phpcode/include/winbinder.php"wb_create_window (NULLAppWindow"Пустая форма"380280); wb_main_loop ();?>

В этом примере, кроме функции wb_create_window (), есть еще одна - wb_main_loop ().
Она заставляет программу постоянно находиться в памяти, и не выгружаться до тех пор, пока не будет вызвана функцияwb_destroy_window (). Здесь не обрабатываются никакие события, поэтому функция wb_destroy_window () не используется. Но если вы хотите использовать какие-нибудь компоненты, и хотите, чтобы они выполняли какие-либо действия, то должны создать функцию обработки событий.

Например:

<?phpinclude "E:/WB/phpcode/include/winbinder.php"$mainwin wb_create_window (NULLAppWindow"Пустая форма"380280); wb_create_control ($mainwinPushButton"Click Me"1010100251); wb_set_handler($mainwin"process_main"); wb_main_loop ();
function 
process_main($window$id){

switch(
$id) {

case 
1:wb_message_box ($window"Сегодня ".date("d M Y")." года""Message Box"WBC_OK);

break;
case 
IDCLOSE:wb_destroy_window($window);

break;

}

}
?>

int wb_create_control (int parent, int ctlclass , mixed [caption], int [xpos], int [ypos], int [width], int [height], int [id], int [style], int [param], int [ntab]);

Функция wb_create_control создает на окне [parent] компонент [ctlclass], с заголовком или текстом [caption], с отступом от левого края [xpos] и от правого края [ypos], с шириной [width] и высотой [height], ID которого равен [id].
Подробнее в мануале по адресу http://winbinder.org/manual/functions/wb_create_control.html.

Обратите особое внимание на функцию wb_set_handler ().

int wb_set_handler (int window, string fn_handler);

Она связывает окно [window] c функцией-обработчиком событий [fn_handler].

Рекомендую посмотреть официальный мануал. Он содержит описание все доступных функций. К сожалению, он доступен только на английском языке и не содержит описания констант.