# tab_switch

### Funkce

Nastavení čísla vybrané záložky do proměnné nebo výstupního kanálu a současné zobrazení odpovídajícího panelu a uschování zobrazených panelů odpovídajícím nevybraným záložkám.

### Syntax

      tab_switch_label tab_switch_name;
        rem = string;
        bubble = string;
        timer = timer_name;
        owner = owner_name;
        position = integer, integer, integer, integer;
        win_disable = [ identifier, . . . ];
        win_title = string;
        access = integer;
        tab_select = integer;
        send_same_data;
        driver_exception = driver_name;
        mode = identifier;
        tab_align = identifier;
        font = font_identifier, integer, style_identifier;
        height = integer;
        output = numeric_dataelement;
        receivers = [ identifier, . . . ];
        item
          title = string;
          icon = file_name;
          panel = panel_name;
          selected;
        end_item
        item
          ...
        end_item;
        colors
          text = color;
          background = color;
          top_shadow = color;
          bottom_shadow = color;
          select = color;
        end_colors;
      end_tab_switch;

### Specifické parametry přístroje

- mode
  Určuje vzhled přístroje, resp. umístění záložek.
  right - záložky jsou umístěny na pravé straně svisle pod sebou
  top - záložky jsou umístěny nahoře
  bottom - záložky jsou umístěny dole
  top_no_frame - záložky jsou umístěny nahoře a okolo přístroje není zobrazen stínovaný rámeček
  bottom_no_frame - záložky jsou umístěny dole a okolo přístroje není zobrazen stínovaný rámeček
- tab_align
  Určuje, kam budou záložky zarovnávány. Má smysl jen pro záložky dole a nahoře.
  left - záložky jsou zarovnávány vlevo
  right - záložky jsou zarovnávány vpravo
  center - záložky jsou centrovány doprostřed
  full - záložky vyplňují šířku přístroje
- font
  Jde o parametr určující písmo v záložkách. Má vždy tři parametry. První z nich font_identifier určuje typ písma (např. TIMES, ARIAL aj.), druhý určuje jeho velikost a třetí parametr style_identifier rozhoduje o tom, zda bude písmo normální (normal), tučné (bold), skloněné (italic) nebo tučné a skloněné (bolditalic).
- height
  Definuje výšku stínu záložek.
- output
  Obsahuje jméno proměnné nebo výstupního kanálu, na který se bude posílat hodnota odpovídající číslu vybrané záložky (první záložce odpovídá číslo jedna).
- receivers
  Obsahuje seznam všech přístrojů, kterým je zasílána zpráva při vybrání záložky.
- item a end_item
  Klíčová slova, která uzavírají parametry jedné položky.
  - title
    Text v záložce.
  - icon
    Ikona v záložce.
  - panel
    Jméno panelu, který bude zobrazen při vybrání této záložky.
  - selected
    Určuje, že bude tato položka po spuštění aplikace vybrána.
- colors
  Seznam prvků přístroje, kterým lze měnit nastavení barvy:
  text - písmo
  background - pozadí
  top_shadow - horní stín
  bottom_shadow - dolní stín

### Poznámka

Některé parametry mají implicitní nastavení

      position = 0, 0, 50, 50;
      access = <none>
      tab_select = <none>
      mode = right;
      tab_align = left;
      height = 2;
      colors
        text = black;
        background = lgray;
        top_shadow = white;
        bottom_shadow = dgray;
        select = black;
      end_colors;

### Příklad

Příklad nastavení parametrů přístroje

      tab_switch TabSw;
        owner = background;
        position = 200, 20, 130, 190;
        tab_align = right;
        output = SelTabIdx;
        item
          title = 'Tab 1';
          panel = Panel_1;
          selected;
        end_item;
        item
          title = 'Tab 2';
          panel = Panel_2;
          selected;
        end_item;
        item
          title = 'Tab 3';
          panel = Panel_3;
          selected;
        end_item;
        colors
          text = white;
          background = blue;
          top_shadow = lblue;
          bottom_shadow = black;
        end_colors;
      end_tab_switch;

## Nativní procedury přístroje

    Enable( Index : number )

Umožní přepnutí na záložku specifikovanou parametrem Index. První záložka má Index = 1.

    Disable( Index : number )

Znemožní přepnutí na záložku specifikovanou parametrem Index. První záložka má Index = 1.

    SetSelIndex( Index : number )

Přepne na záložku specifikovanou parametrem Index. První záložka má Index = 1.

    SetTabText( Index : number; Text : string )

Nastaví text uvedený v parametru Text do záložky specifikované parametrem Index. První záložka má Index = 1.

    Show()

Zobrazení skrytého přístroje.

    Hide()

Skrytí viditelného přístroje.

    NewRect( x, y, w, d : number )

Zavoláním metody je možné přístroji změnit současně jeho pozici a velikost. Velikosti hodnot x, y, w, d jsou v bodech obrazovky.

## 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 )
    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

    procedure OnIndex( Index : real )

Procedura je volána po přepnutí záložky, resp. po nastavení datového elementu uvedeného u parametru output.