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ů.
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;
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 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;
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.
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()
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.