Přístroj panel je určen ke shromažďování více přístrojů do jednoho objektu, který může být zobrazován, skrýván nebo minimalizován (je-li panel v okně) podle zadaných logických podmínek.
Pouze jméno přístroje panel se tedy může vyskytovat v parametru owner jiných viditelných přístrojů (s výjimkou klíčového slova background představujícího pracovní plochu -- desktop).
Přístroj panel může zobrazovat na svém podkladu jakékoliv DataView, které je podporováno systémem Control Web, např. bitmapové nebo vektorové obrázky, texty, grafy, tabulky, databáze, HTML dokumenty, animované 'FLC' a 'AVI' soubory apod.
Blíže se o panelech a DataView dočtete v kapitole Vzhled aplikace.
panel panel_name;
rem = string;
bubble = string;
timer = timer_name;
owner = owner_name;
position = integer, integer, integer, integer;
win_disable = [ identifier, . . . ];
win_title = string;
access = integer;
send_same_data;
mode = normal | windw_less | off_screen;
color = color;
blink_color = color;
blink_rate = slow | normal | quick;
blink = boolean_expression;
icon = file_name;
dv_id = string;
dv_file = file_name;
dither_bitmaps;
container;
follow_scrollbars;
disable_controls;
disable_scrollbars;
load_on_show;
stay_on_top;
minimize = boolean_expression;
ascend = boolean_expression;
descend = boolean_expression;
visibility = boolean_expression;
select = boolean_expression;
dv_page = boolean_expression;
dv_logpos_x = real_expression;
dv_logpos_y = real_expression;
item
rect = integer, integer, integer, integer;
output = boolean_dataelement;
end_item;
item
...
end_item;
receivers = [ identifier, ... ];
end_panel;
Implicitně jsou nastaveny parametry:
window panel panel_1;
timer = 1;
owner = background;
position = 0, 0, 320, 240;
end_panel;
Move( dx : number, dy : number )
Přesune panel o zadané dx, dy relativně k současné pozici.
MoveTo( x : number, y : number )
Přesune panel na souřadnice x, y absolutně vzhledem k vlastníkovi panelu.
Size( w : number, d : number )
Změní velikost panelu na hodnoty w a d. Pozice levého horního rohu zůstane zachována.
NewRect( x : number, y : number, w : number, d : number )
Změní celý obdélník obsazený panelem. Panel bude přesunut na souřadnice x, y a bude mu nastavena velikost w, d.
Minimize()
Je-li panel v okně, minimalizuje toto okno do ikony.
Maximize()
Je-li panel v okně, maximalizuje toto okno na celou plochu obrazovky.
Restore()
Je-li panel v okně a toto okno je minimalizováno nebo maximalizováno, bude obnovena velikost okna před minimalizací nebo maximalizací.
Select()
Způsobí vybrání panelu. Všechny následující akce uživatele (stisky kláves apod.) budou směřovány k vybranému panelu. Myší lze vybrat jiný objekt.
Show()
Zobrazení skrytého panelu.
Hide()
Skrytí viditelného panelu.
Ascend()
Vynoření panelu nad ostatní okna a panely na pozadí.
Descend()
Ponoření panelu pod ostatní okna a panely na pozadí.
StayOnTop( f : boolean )
Na základě hodnoty argumentu f nastavuje případně ruší volbu StayOnTop, která způsobuje setrvání panelu případně okna panelu na povrchu, tedy i nad nově vybranými okny. Pokud má současně více oken nastavenu tuto volbu, je jejich pořadí nedefinováno.
SetColor( n : number )
Pokud v panelu není přítomno DataView, změní barvu podkladu panelu. Barva je zadávána jako číslo 0 až 15 odpovídající základní paletě 16 barevného adaptéru IBM PC.
SetColor( r : number, g : number, b : number )
Pokud v panelu není přítomno DataView, změní barvu podkladu panelu. Barva je definována třemi složkami pro červenou r, zelenou g a modrou b. Tímto způsobem je možno definovat libovolnou z 16 miliónů barev.
Blink( BlinkOn : boolean )
Volání způsobí nastavení stavu blikání na hodnotu BlinkOn (překreslení barvou color nebo blink_color).
ToggleBlink()
Volání způsobí záměnu stavu blikání -- překreslení barvou color, byl-li panel překreslen barvou blink_color nebo opačně.
GetState( &Selected : boolean, &Minimized : boolean, &Maximized : boolean )
Procedura vrací ve třech logických parametrech je-li panel vybrán, je-li jeho okno minimalizováno a maximalizováno. Pokud panel není v okně, poslední dva argumenty jsou nastaveny na false.
Poslední dva parametry mohou mít současně hodnotu true. Pak je okno minimalizováno v ikoně a jeho obnovení způsobí obnovení maximalizovaného stavu, nikoliv "normální" velikosti.
SetWinTitle( title : string )
Je-li panel v okně, titulek okna bude změněn na řetězec title.
SetAccessLevel( level : number )
Přístupová práva panelu budou změněna na hodnotu level.
Print()
Vytiskne grafickou podobu panelu na tiskárně, která je v systému Windows nastavena jako výchozí.
DVNewFile( path : string )
Do DataView na pozadí panelu bude zaveden nový soubor uvedený jako argument procedury. Pokud v panelu DataView nebylo nebo pracovalo s jiným typem dat, bude vytvořeno nové DataView a případné původní DataView bude zrušeno.
DVNewType( dvtype : string )
Pokud DataView na pozadí panelu neexistuje nebo neodpovídá zadanému typu, bude vytvořeno nové prázdné DataView zadaného typu a případné staré DataView bude zrušeno. Data je možno zavést nativní procedurou DVOpen.
DVOpen( path : string )
Způsobí zavedení nového datového souboru do DataView na pozadí panelu. Tato funkce není schopna měnit typ DataView.
DVClear()
Vymaže data z DataView na pozadí panelu.
DVSetPos( x : number, y : number )
Nastaví logickou pozici DataView na souřadnice x, y. Pokud DataView není přítomno nebo nepodporuje logické souřadnice, volání nemá efekt.
DVSetPage( page : number )
Nastaví DataView na stránku page. Pokud DataView není přítomno nebo nemá více stránek, volání nemá efekt.
DVGetPos( &x : number, &y : number )
Vrátí logickou pozici DataView v proměnných x, y. Pokud DataView není přítomno nebo nepodporuje logické souřadnice, volání nemá efekt.
DVGetPage( &page : number )
Vrátí stránku DataView v proměnné page. Pokud DataView není přítomno nebo nemá více stránek, volání nemá efekt.
DVPlay( )
Pokud typ DataView dovoluje přehrávání, spustí přehrávání.
DVPlayRepeat( )
Pokud typ DataView dovoluje přehrávání, spustí přehrávání v módu cyklického opakování.
DVStop( )
Pokud typ DataView dovoluje přehrávání a přehrávání právě probíhá, bude zastaveno.
Přístroj může volat standardní událostní procedury:
OnActivate() OnMouseDown( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseDoubleClick( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseUp( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnMouseMove( MouseX, MouseY : integer; LeftButton, MiddleButton, RightButton : boolean ) OnKeyDown( Character : cardinal ) OnKeyRepeat( Character : cardinal ) OnKeyUp( Character : cardinal ) OnSelect() OnDeselect() OnShow() OnHide() OnNewPosition( RectX, RectY, RectW, RectD : integer ) OnWindowMinimize() OnWindowMaximize() OnWindowRestore( WasMinimized, WasMaximized : boolean ) OnWindowClose()
Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.
OnIndex( n : number )
Událostní procedura OnIndex je vyvolána vždy když uživatel zvolí myší některý definovaný aktivní obdélník panelu. Pořadové číslo obdélníku je předáno v parametru n.