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.