multi_switch

Funkce

Nastavení logických hodnot do řady logických výstupních datových elementů pomocí tlačítek a přepínačů.


Syntax

  multi_switch multi_switch_name;
    rem = string;
    bubble = string;
    owner = owner_name;
    position = integer, integer, integer, integer;
    win_disable = [ identifier, . . . ];
    win_title = string;
    access = integer;
    tab_select = integer;
    send_same_data;
    blink = boolean_expression;
    blink_rate = identifier;
    mode = identifier;
    receivers = [ identifier, . . . ];
    font = font_identifier, integer, style_identifier;
    item
      text = string;
      output = output_name;
      selected;
    end_item;
    item
      . . .
    end_item;
    sound = file_name;
    colors
      paper = color;
      ink = color;
      tshadow = color;
      bshadow = color;
    end_colors;
    blink_colors
      paper = color;
      ink = color;
      tshadow = color;
      bshadow = color;
    end_blink_colors;
  end_multi_switch;


Specifické parametry přístroje


Poznámka

Přístroj je vždy aktivován obsluhou stiskem klávesy <Enter> nebo levým tlačítkem myši na ovládacích prvcích. Navíc může být také aktivován např. časovačem nebo jiným přístrojem, kdy se může automaticky nastavovat podle hodnoty ve svém výstupním datovém elementu nebo cokoliv realizovat ve své proceduře OnActivate().

Implicitně se nastaví parametry:

  position = 0, 0, 40, 40;
  access = 4294967295;
  tab_select = 4294967295;
  mode = slider;
  font = SYSTEM, 10, bold;

Příklad

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

  multi_switch id_2;
    owner = background;
    position = 337, 222, 130, 38;
    mode = radio_button;
    item
      text = 'sinus';
      output = b1;
    end_item;
    item
      text = 'náhodný šum';
      output = b2;
    end_item;
    colors
      paper = white;
    end_colors;
  end_multi_switch;

Nativní procedury přístroje multi_switch

Update()
Nastavení přístroje do stavu daného jeho výstupními datovými elementy.

Update( SetOutput : boolean )
Nastavení přístroje podle aktuálního stavu jeho výstupního datového elementu. Parametr SetOutput určuje, budou-li nová data zpětně zapsána do výstupního datového elementu.

SetIndex( real )
Nastavení přístroje do stavu daného parametrem Index včetně zápisu do výstupních datových elementů. První definovaný item má Index = 1.

MoveTo( x, y : real )
Posunutí přístroje na pozici x, y. Velikosti hodnot x a y jsou v bodech obrazovky.

Hide()
Skrytí viditelného přístroje.

Show()
Zobrazení skrytého přístroje.

DeselectAll()
Nastavení objektu v módu menu do stavu, kdy není vybrána žádná položka.

Disable()
Zablokování přístroje. Po zavolání této procedury aktivní plocha ovládacího prvku sešedne (bude překryta 50% rastrem) a přístroj nebude reagovat na některé události od myši a klávesnice.

Enable()
Odblokování přístroje dříve zablokovaného metodou Disable(). Objekt se překreslí do původního vzhledu.

DisableMenuItem( ItemIndex : number )
V módu menu a menu_bar je znepřístupněna položka daná parametrem ItemIndex.

EnableMenuItem( ItemIndex : number )
V módu menu a menu_bar je opět zpřístupněna dříve zakázaná položka daná parametrem ItemIndex.

SetSelIndex( ItemIndex : real )
Volba položky dané parametrem ItemIndex.

Blink( BlinkingActive : boolean )
Zapnutí a vypnutí blikání. Voláním procedury Blink s parametrem BlinkingActive nastaveným na true začne přístroj blikat (tj. střídavě se překreslovat s použitím barevných sad colors a blink_colors). Blikání je možno zastavit voláním procedury Blink s parametrem BlinkingActive nastaveném na hodnotu false. Frekvence blikání je dána parametrem přístroje blink_rate.


ToggleBlink()
Přepnutí vzhledu přístroje do alternativní sady barev, tedy z colors do blink_colors nebo naopak podle okamžitého stavu. Po zastavení blikání se přístroj vždy vrátí do standardní barevné sady bez ohledu na předchozí volání procedury ToggleBlink.

Událostní procedury přístroje multi_switch

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

Specifické událostní procedury přístroje

OnIndex( Index : real )
Procedura je zavolána při každé volbě položky. Položka která je identifikována hodnotou parametru Index (počínaje číslem 1).

OnIndexOutput( Index : real; &Output: boolean )
Procedura je zavolána pro každou položku, která je identifikována hodnotou parametru Index (počínaje číslem 1). Má-li tedy multi_switch např. 10 položek, bude procedura zavolána v každém časovém kroku desetkrát. V proměnné Output je hodnota, která bude po dokončení procedury zobrazena a případně zapsána do výstupního datového elementu. Tuto hodnotu je možno v proceduře změnit.