Promotic

Parametry Pmg objektu

Parametry Pmg objektu jsou textové konstanty (vytvořené projektantem), které lze vytvořit v libovolném Pmg objektu.
Parametry Pmg objektu jsou velice podobné parametrům Pma objektu.
Pokud Pmg objekt má parametry a pokud v editoru grafiky je kurzor myši nad tímto Pmg objektem, pak se tyto parametry (včetně hodnot) zobrazují ve stavové liště editoru grafiky.

Parametr má svůj název a hodnotu:
Název parametru: Je to systémový název, může obsahovat jen alfanumerické znaky a nesmí obsahovat diakritiku (tzn. národnostně závislé znaky), prázdný řetězec, mezery a první znak nesmí být číslo.
Hodnota parametru je libovolný textový řetězec. Pro zadání lze použít Makro výraz (vyhodnocuje se při otevírání okna).


Vytvoření parametru:
- Parametry objektu PmgRoot se definují v konfigurátoru "PmgObject > Objekt > Parametry Pmg objektu".
- Parametry pro ostatní Pmg objekty se definují v konfigurátoru "PmgObject > Objekt > Parametry Pmg objektu".


Čtení a použití parametru:
Parametr lze číst:
- ve skriptu metodou GetPar.
- v konfigurátorech pomocí makro výrazu $.par (např. při definování datových vazeb).

Oba přístupy čtou parametr kaskádním způsobem (bubláním), tzn. pokud objekt, ve kterém se makro/metoda používá, tento parametr nemá, pak se parametr hledá v jeho rodiči (v objektu, do kterého je vnořen) až nakonec ho hledá v objektu PmgRoot.
Parametr se používá hlavně pro konfiguraci datových vazeb Pmg objektů. V tom případě Pmg objekt (složený nebo jednoduchý) může mít definováno více datových vazeb pomocí parametru tak, že konfigurační změnou hodnot parametru se změní odkazy na proměnné v těchto datových vazbách. Další použití parametru je v parametrizaci textů v objektech PmgString, PmgButton, atd.

Změna hodnoty parametru:
- Za běhu aplikace (v runtime) obecně nelze hodnotu parametru Pmg objektu změnit - slouží jako konstanta
Výjímkou však jsou parametry objektu PmgRoot. Tyto parametry lze změnit při otevírání obrazu (na rozdíl od parametrů v jiných Pmg objektech). Poté jsou po dobu otevřeného obrazu i tyto parametry neměnitelné. Hodnoty parametrů při otevírání obrazu lze zadat dvěma způsoby:
- při volání metody OpenView v parametru sParams nebo
Příklad: Lze otevřít obraz poprvé s hodnotou 1, podruhé s hodnotou 2 - a tak poprvé zobrazit obraz pro "Kotelna1" a podruhé pro "Kotelna2".
- ve vývojovém prostředí lze samozřejmě hodnoty všech Pmg objektů změnit (lze i přidávat nebo ubírat parametry).
Hlavní význam parametru Pmg objektu je pro vytvoření rozhraní Pmg objektu, kdy při zkopírování tohoto Pmg objektu lze pak lehce změnit hodnoty jeho parametrů tak, že například nezobrazuje data pro "Kotel1" ale pro "Kotel2". Parametr Pmg objektu tedy usnadňuje tvorbu často používaných uživatelských Pmg objektů v editoru grafiky.

Příklad parametrizace textu:
v objektu PmgString vytvořte parametr s názvem například CisloKotle, nastavte hodnotu na 1. V tomto objektu vyplňte konfigurátor "Hodnota":
$.join("Teplota v kotli", $.par("CisloKotle"))

Výsledkem je zobrazení textu: Teplota v kotli 1
Příklad parametrizace datové vazby:
Nechť jsou v aplikaci data: "/Kotel1/Data" a "/Kotel2/Data" stejného typu PmaData. Ve obou objektech je definována proměnná "Teplota. Dále jsou v obrazu /ObrazKotle umístěny dva objekty pro zobrazení obou teplot. Pokud v budoucnu přibude další objekt, např. Kotel3, aby jednoduchým kopírováním existujícího objektu vznikl nový objekt zobrazující teplotu tohoto nového objektu.
Řešení:
- V objektu PmgString (zobrazujícím hodnotu teploty) vytvořte parametr s názvem například CisloKotle, nastavte hodnotu na 1.
- V konfigurátoru "Hodnota" tohoto objektu vytvořte datovou vazbu PP - Datová vazba na vlastnost Pma objektu. V datové vazbě zadejte:
- Konfigurátor "Objekt" textem:
$.join("/Kotel", $.par("CisloKotle"), "/Data/#vars/Teplota")
- Konfigurátor "Vlastnost" se automaticky vyplní textem Value.

Tímto je správně nastaven Pmg objekt. Nyní lze kopírováním tohoto objektu a pouhou změnou hodnoty parametru CisloKotle na 2 v této kopii zajistit, že tento zkopírovaný Pmg objekt bude zobrazovat hodnotu /Kotel2/Data/#vars/Teplota. Kdykoli lze v budoucnu jednoduše změnou parametru u tohoto objektu změnit objekt, jehož veličina se má zobrazovat.
Příklad vytvoření obrazu s parametrem:
Nechť jsou v aplikaci data: "/Kotel1/Data" a "/Kotel2/Data" stejného typu PmaData. Ve obou objektech je definována proměnná "Teplota. Dále je obraz /ObrazKotle, který má ukazovat teplotu pro "Kotel1" nebo pro "Kotel2" (podle parametrů otevření okna).
Řešení:
- v obrazu /ObrazKotle v objektu PmgRoot vytvořte parametr s názvem CisloKotle.
- Vytvořte Pmg objekt, například PmgString (bude zobrazovat hodnotu teploty). V konfigurátoru "Hodnota" vytvořte datovou vazbu PP - Datová vazba na vlastnost Pma objektu. V datové vazbě zadejte:
- Konfigurátor "Objekt" textem:
$.join("/Kotel", $.par("CisloKotle"), "/Data/#vars/Teplota")
- Konfigurátor "Vlastnost" se automaticky vyplní textem Value.

Tímto máte správně vyplněn obraz. Nyní zbývá zajistit aby se obraz otevřel vždy s příslušným parametrem. Například vytvořte jiný obraz, ze kterého budete otevírat obraz /ObrazKotle. Do tohoto nového obrazu vložte dvě tlačítka (Pmg objekty PmgButton). První tlačítko bude otevírat obraz pro "Kotel1", druhé tlačítko bude otevírat stejný obraz pro "Kotel2". Do události onButtonUp prvního tlačítka zadejte skript:
pMe.PmPanel.OpenView "/ObrazKotle", "", "pars:{CisloKotle:1;}"

Do stejné události druhého tlačítka zadejte podobný skript:
pMe.PmPanel.OpenView "/ObrazKotle", "", "pars:{CisloKotle:2;}"

Spusťte nyní aplikaci a otevřete okno s tlačítky.
Po stisknutí prvního tlačítka se otevře okno pro "Kotel1".
Po stisknutí druhého tlačítka se otevře okno pro "Kotel2".
© MICROSYS, spol. s r.o.