Az előző oldalon megtanultuk, hogyan lehet egyáltalán EXE fájlt készíteni. most megnézzük, hogyan lesz ablakozós a program.
Az ablakozó programok két részből állnak:
1. Definiálni kell az ablakokat és meg kell jeleníteni azokat
2. Az ablakokkal történő eseményeket fel kell dolgozni.
A Windowsos alkalmazás elkészítéséhez be kell ágyazni a winbinder.php-t
include("include/winbinder.php");
A windowsos programok ablakozó rendszerét létre kell hozni
$mainwin = wb_create_window(NULL, "ablak neve", "alkalmazás neve",szélesség, magasság);
Definiálni kell grafikus elemeket:
$label = wb_create_control($mainwin, Label, $Errormsg, 10, 12, WIDTH-40, HEIGHT-150, 0, WBC_CENTER);
wb_set_font($label, wb_create_font("Tahoma", 10, null, FTA_BOLD));
$statusbar = wb_create_control($mainwin, StatusBar, date("Y.m.d H:i:s A"));
A Windowsos programok egy végtelen ciklusban futnak és várják a felhasználó beavatkozását. Ez az indulás után f?program, amit az alábbi paranccsal lehet beállítani:
wb_set_handler($mainwin, "process_main");
Ezt a függvényt persze definiálni is kell, például egy include fájlban:
function process_main($window,$id){
switch ($id){
case IDEVENTVALAMI
más műveletek...
break
case IDCLOSE
wb_destroy_font();
wb_destroy_window($window);
break;
stb....
}
}
A programot láthatóvá kell tenni:
wb_set_visible($mainwin, TRUE);
És el kell indítani a f?programot:
wb_main_loop();
A teljes példaprogram kb így néz ki:
<?php
define('APPNAME', "logon/logoff progi v1.4");
define("WIDTH", 400);
define("HEIGHT", 300);
define("IDEVENTCLOSE",1024);
include ("include/winbinder.php"); // Include WinBinder library
if(wb_get_instance(APPNAME, TRUE)) die();
$mainwin = wb_create_window(NULL, PopupWindow, APPNAME, WIDTH, HEIGHT); // Create application window
// Create label control inside the window
if(!$help){
$label = wb_create_control($mainwin, Label, $Errormsg, 10, 12, WIDTH-40, HEIGHT-150, 0, WBC_CENTER);
}else{
$label = wb_create_control($mainwin, Label, $Errormsg, 10, 12, WIDTH-40, HEIGHT-150, 0);
}
//betűtípus állítása
wb_set_font($label, wb_create_font("Tahoma", 10, null, FTA_BOLD));
//windows handler
wb_set_handler($mainwin, "process_main");
// Create status bar
$statusbar = wb_create_control($mainwin, StatusBar, date("Y.m.d H:i:s A"));
wb_set_font($statusbar, wb_create_font("Tahoma", 8));
//Csak akkor számít, ha az ismételt belépés volt.
if(!$help){
//Ha kilépés volt
if($EventID == 538) {
$BtnText='Belépés';
$EventID = 540;
$Event = $BtnText;
}else{
$BtnText='Kilépés';
$EventID = 538;
$Event = $BtnText;
}
$dx = mt_rand(-100,100);
$dy = mt_rand(-10,10);
$EventExit = wb_create_control($mainwin, PushButton, $BtnText, (int)(WIDTH / 2) - 60+$dx, HEIGHT-140+$dy, 120, 20, IDEVENTCLOSE, WBC_CENTER);
wb_set_font($EventExit, wb_create_font("Tahoma", 10, null, FTA_BOLD));
}
$Exit = wb_create_control($mainwin, PushButton, "&Ok", (int)(WIDTH / 2) - 30, HEIGHT-100, 60, 20, IDCLOSE, WBC_CENTER);
wb_set_font($Exit, wb_create_font("Tahoma", 10, null, FTA_BOLD));
// Enter application loop
//wb_set_image($mainwin, 'amcelogon.ico');
wb_set_visible($mainwin, TRUE);
wb_main_loop();
//-------------------------------- FUNCTIONS -----------------------------------
/* Process main window commands */
function process_main($window, $id)
{
global $label, $statusbar;
static $pos;
switch($id) {
case IDEVENTCLOSE:
regisztracio(); //Itt egy nem publikus kódrészlet van
case IDCLOSE:
wb_destroy_window($window);
wb_destroy_font();
break;
}
}
?>