# monitor

### Funkce

Slouží pro ladění aplikací. Dokáže kdykoliv zobrazit stav všech použitých datových elementů v modulu v běžící aplikaci a zobrazovat trasovací zprávy z procedur.

### Syntax

      monitor monitor_name;
        rem = string;
        bubble = string;
        timer = timer_name;
        owner = owner_name;
        position = integer, integer, integer, integer;
        win_disable = [identifier, ... ];
        win_title = string;
        access = integer;
        send_same_data;
        driver_exception = driver_name;
        auto_run;
        num_base = identifier;
        stay_on_top;
        hide_watch_pane;
        watch
          var = var_name;
          var = var_name;
          channel = channel_name;
          channel = channel_name;
        end_watch;
      end_monitor;

### Specifické parametry přístroje

- auto_run
  Aktivuje monitorování nadefinovaných datových elementů ihned po startu aplikace.
- num_base
  Základ číselné soustavy, ve které budou zobrazována celá čísla.
  binary - dvojková soustava, např. 1100B
  octal - osmičková soustava, např. 15O
  decimal - desítková soustava, např. 12
  hexadecimal - šestnáctková soustava, např. 0CH
- stay_on_top
  Pokud je uveden tento parametr, zůstává přístroj v okně vždy nad ostatními okny.
- hide_watch_pane
  Pokud je uveden tento parametr, nebude zobrazen panel určený pro sledování proměnných a kanálů.
- watch a end_watch
  Klíčová slova, která uzavírají seznam datových elementů , jejichž stav bude přístroj monitor zobrazovat po spuštění aplikace.
  - var
    Jméno proměnné, která bude monitorována.
  - channel
    Jméno kanálu, který bude monitorován.

### Poznámky

Nedoporučujeme používat tento přístroj ve finální verzi vaší aplikace!

Některé parametry mají implicitní nastavení

      position = 0, 0, 400, 300;
      access = <none>;
      num_base = decimal;

### Příklad

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

        window monitor vd;
          timer = 2;
          owner = background;
          position = 10, 10, 100, 100;
          num_base = binary;
          watch
            var = průměr;
            var = součet;
            channel = kanal_1;
            channel = kanal_2;
            var = rozdil;
            channel = kanal_3;
          end_watch;
        end_monitor;

## Nativní procedury přístroje

    Clear()

Smaže část okna monitoru určenou pro vypisování zpráv (Message).

    Save( FileName : string );

Uloží vypsané zprávy do souboru FileName.

    Print();

Vytiskne vypsané zprávy na tiskárně.

    WrStr( s : string )

Vypíše text obsažený v parametru s.

    Write( Comment : string; Value : any )

Vypíše komentář Comment a hodnotu Value do horní části monitoru určené pro výpis zpráv.

    WriteLn()

Odřádkuje.

    Enable()

Povolí výpis zpráv do monitoru.

    Disable()

Zakáže výpis zpráv do monitoru.

    SetNumBase( Base : number )

Číselná soustava, ve které budou zobrazována celá čísla.
Hodnoty parametru Base:

  2 - dvojková soustava
  8 - osmičková soustava
  10 - desítková soustava
  16 - šestnáctková soustava

      SetIndent( Indent : number )

  Počet Indent znaků, o které budou odsazovány vypisované zprávy v monitoru.

      IncIndent( Indent : number )

  Zvětší odsazování o Indent znaků.

      DecIndent( Indent : number )

  Zmenší odsazování o Indent znaků.

      StartWatch()

  Spustí monitorování datových elementů.

      StopWatch()

  Zastaví monitorování datových elementů.

      Show()

  Zobrazení skrytého přístroje.

      Hide()

  Skrytí viditelného přístroje.

  ## Událostní procedury přístroje

  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 )
      OnSelect()
      OnDeselect()
      OnShow()
      OnHide()
      OnNewPosition( RectX, RectY, RectW, RectD : integer )
      OnWindowMinimize()
      OnWindowMaximize()
      OnWindowRestore( WasMinimized, WasMaximized : boolean )
      OnWindowClose()

  Podrobnější informace k těmto procedurám lze nalézt v kapitole Programování a procedury.