control

Funkce

Nastavení číselné hodnoty do datového elementu pomocí knoflíku, rolovací lišty, numerického řádku, editačního řádku nebo dialogového okna.


Syntax

  control control_name;
    rem = string;
  	bubble = string;
    owner = owner_name;
    timer = timer_name;
    position = integer, integer, integer, integer;
    win_disable = [ identifier, . . . ];
    win_title = string;
    access = integer;
    tab_select = integer;
    send_same_data;
    output = real_dataelement;
    blink = boolean_expression;
    blink_rate = identifier;
    mode = identifier;
    content = identifier;
    range_from = real;
    range_to = real;
    init_value = real;
    real_step = real;
    dec_places = integer;
    font = font_identifier, integer, style_identifier;
    change_icon = file_name;
    receivers = [ identifier, . . . ];
    auto_update;
    colors
      border_ink = color;
      border_paper = color;
      top_shadow = color;
      bottom_shadow = color;
      ink = color;
      paper = color;
      selected_text_ink = color;
      selected_text_paper = color;
      text_ink = color;
      text_paper = color;
    end_colors;
    blink_colors
      border_ink = color;
      border_paper = color;
      top_shadow = color;
      bottom_shadow = color;
      ink = color;
      paper = color;
      selected_text_ink = color;
      selected_text_paper = color;
      text_ink = color;
      text_paper = color;
    end_blink_colors;
  end_control;


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 také 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().

V žádném módu se nemění funkce přístroje, mění se pouze způsob jeho zobrazení a způsob zadávání numerické hodnoty.

Některé parametry mají implicitní nastavení:

      
  position = 0, 0, 80, 80;
  access = 4294967295;
  tab_select = 4294967295;
  mode = knob;
  content = min;
  range_from = 0;
  range_to = 100;
  init_value = 0;
  real_step = 1;

Ovládání jednotlivých módů:

Příklad

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

  window control potenciometr_1;
    owner = background;
    position = 128, 48, 82, 85;
    win_disable = move, zoom, minimize, maximize, lower;
    win_title = 'CONTROL';
    output = promenna;
    mode = turn;
    content = max;
    change_icon = CONTROL.ICO;
    receivers = id_2;
    colors
      mark = black;
    end_colors;
  end_control;

Nativní procedury přístroje control

Update()
Nastavení ovládacího prvku podle aktuálního stavu jeho výstupního datového elementu včetně překreslení přístroje v novém stavu.

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.

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

SetRange( RangeFrom, RangeTo : real )
Nastavení číselného rozsahu 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. Velikost 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í.

Disable()
Zablokování přístroje. Po zavolání této metody 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í v původním vzhledu.

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 control

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

OnOutput( Output : real )
Procedura je zavolána před každým zápisem do výstupního datového elementu. V proměnné Output je hodnota, které bude bude 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 pouze před takovým zápisem do výstupního datového elementu, kdy se nová hodnota liší od hodnoty ve výstupním datovém elementu. Proměnná Output je naplněna hodnotou, která bude bude po dokončení procedury zapsána do výstupního datového elementu. Toto hodnotu je možno v proceduře změnit.