tank

Funkce

Zobrazení výsledku numerického výrazu v podobě míry naplněnosti symbolu nádrže. Přístroj nepřekresluje celou plochu své obdélníkové oblasti. Pro správnou činnost musí být umístěn v panelu, který zajistí správné kreslení pozadí.


Syntax

  tank tank_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;
    expression = real_expression;
    blink = boolean_expression;
    blink_rate = identifier;
    mode = identifier;
    content = identifier;
    range_from = real;
    range_to = real;
    low_limit = real;
    high_limit = real;
    driver_exception = identifier;
    colors
      border_ink = color;
      border_paper = color;
      value = color;
      low_limit = color;
      high_limit = color;
    end_colors;
    blink_colors
      border_ink = color;
      border_paper = color;
      value = color;
      low_limit = color;
      high_limit = color;
    end_blink_colors;
  end_tank;


Specifické parametry přístroje


Poznámka

Šířka přístroje nemůže přesáhnout jeho výšku. Nejplošším tvarem je tedy kruh.
DataView Implicitně jsou nastaveny parametry:

  position = 0, 0, 50, 150;
  tab_select = 4294967295;
	mode = tank1;
	content = shaded;
  range_from = 0;
  range_to = 100;
  low_limit = 25;
  high_limit = 75;
  colors
    border_ink = black;
    border_paper = lgray;
    value = lblue;
    low_limit = lcyan;
    high_limit = lred;
  end_colors;

Příklad

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

  tank id_1;
    timer = time_step;
    owner = panel_1;
    position = 57, 264, 80, 220;
    expression = level;
  end_tank;

Nativní procedury přístroje tank

SetValue( Value : real )
Nastavení přístroje na novou hodnotu Value včetně případného zápisu této hodnoty do výstupního datového elementu.

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.

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

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

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

SetNewValueColor(r, g, b : real)
Nastavení libovolné barvy pro zobrazování normální výstupní veličiny (tj. mezi varovnými limity). Čtyřiadvacetibitová barva je zadána v podobě red, green a blue složky, kdy každá může nabývat hodnot od 0 do 255.

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 tank

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 tank

OnOutput( Output : real )
Procedura je zavolána po každém vyhodnocení výrazu před každým zobrazením a před každým případným zápisem do výstupního datového elementu. V proměnné Output je hodnota, která bude přístrojem zobrazena a která bude případně po dokončení procedury zapsána do výstupního datového elementu. Toto hodnotu je možno v proceduře změnit.

OnOutputChanged( Output: real )
Procedura je zavolána jen při změně výsledku vyhodnocovaného výrazu oproti výsledku předchozímu. Proměnná Output je naplněna hodnotou, která bude přístrojem zobrazena a která bude případně po dokončení procedury zapsána do výstupního datového elementu. Toto hodnotu je možno v proceduře změnit.