panel

Funkce

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.

Syntax

  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;

Specifické parametry přístroje

Implicitně jsou nastaveny parametry:

  window panel panel_1;
    timer = 1;
    owner = background;
    position = 0, 0, 320, 240;
  end_panel;

Nativní procedury přístroje

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.

Událostní procedury přístroje

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.

Specifické událostní procedury přístroje

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.