switch_label

Funkce

Nastavení logické hodnoty do výstupního datového elementu a současně zobrazení výsledků vyhodnocení logických výrazů pomocí ikon nebo textů.


Syntax

  switch_label switch_label_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;
    output = boolean_dataelement;
    init_value = boolean;
    blink = boolean_expression;
    blink_rate = identifier;
    driver_exception = driver_name;
    receivers = [ identifier, . . . ];
    mono = integer, boolean;
    logic = identifier;
    item
      icon = file_name;
      font = font_identifier, integer, style_identifier;
      text = string;
      font = font_identifier, integer, style_identifier;
      text = string;
      expression = boolean_expression;
    end_item
    item
      . . .
    end_item;
    colors
      paper = color;
      ink = color;
      top_shadow = color;
      bottom_shadow = color;
    end_colors;
    blink_colors
      paper = color;
      ink = color;
      top_shadow = color;
      bottom_shadow = color;
    end_blink_colors;
  end_switch_label;


Specifické parametry přístroje


Poznámka

Přístroj může zobrazovat hodnoty boolean dvěma různými způsoby. Jsou–li definovány parametry true_text a false_text, mají přednost před zadanými ikonami a přístroj zobrazuje tyto texty. Nejsou–li zadány texty, zobrazují se ikony.

Implicitně se nastaví parametry:

      
  position = 0, 0;
  access = 4294967295;
  tab_select = 4294967295;
  win_disable = zoom, maximize;
  init_value = false;
  mono = 0, false;
  logic = set_true;

Příklad

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

  switch_label id_3;
    timer = 1;
    owner = panel_1;
    position = 15, 18;
    win_disable = zoom, maximize;
    output = b0;
    mono = 0.1, false;
    logic = set_flip_flop;
    item
      icon = RBLEDOFF.ICO;
      font = SYSTEM, 10, bold;
      text = 'první';
      b3 = b1;
    end_item;
    item
      icon = RRLEDON.ICO;
      font = SYSTEM, 10, bold;
      text = 'druhý';
      b4 = b2;
    end_item;
  end_switch_label;

Nativní procedury přístroje switch_label

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

SetLook( Index : real )
Nastavení vzhledu přístroje do stavu daného parametrem Index bez zápisu hodnot do výstupních datových elementů.

GetIndex( VAR Index : real )
Přečtení aktuálního stavu přístroje.

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

NewRect( x, y, width, depth : real )
Zavoláním metody je možné přístroji změnit současně jeho pozici a velikost. Velikosti hodnot x, y, width, a depth jsou v bodech obrazovky.

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

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

Select()
Přístroj je vybrán, takže do něj přichází všechny události od klávesnice. Přístroj má smysl vybrat, jen je-li ve viditelném panelu a je li sám viditelný. Má-li přístroj nastaven parametr tab_select, je možno jej ve vybraném stavu plně ovládat klávesnicí.

SetValue( Value : boolean )
Zápis hodnoty Value do výstupního datového elementu.

Update()
Nastavení přístroje podle aktuálního stavu jeho výstupního datového elementu.

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

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 switch_label

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 switch_label

OnOutput( Output: boolean )
Procedura je zavolána před každým zápisem do výstupního datového elementu při stisku tlačítka operátorem.

OnIndexOutput( Index : number; 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 switch_label 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 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. Procedura mení volána při stisku tlačítka operátorem, ale jen při jiné aktivaci přístroje.