Promotic
WikipediaLinkedInYoutubeTwitterFacebook

Parametry Pmg obiektu

Parametry Pmg obiektu są stałymi tekstowymi (wytworzonymi przez projektanta), które można wytworzyć w dowolnym Pmg obiektcie.

Parametry Pmg obiektu są bardzo podobne do parametrów Pma obiektu.

Jeżeli Pmg obiekt posiada parametry oraz jeżeli w edytorze grafiki znajduje się kursor myszki nad tym Pmg obiektem, wtedy te parametry (włącznie z wartościami) wyświetlają siś w pasku stanu edytora grafiki.

 
Parametr posiada swoją nazwę oraz wartość:
Nazwa parametru jest nazwą systemową (bez znaków diakrytycznych, bez spacji, jako pierwszy znak musi być litera).
Wartość parametru jest dowolny łańcuch tekstowy. Do wprowadzenia można zastosować Makro wyrażenie (wartość jest obliczana podczas otwierania okna).
 
Wytworzenie parametru:
- Parametry obiektu PmgRoot definiują się w konfiguratorze "PmgRoot > Panel > Parametry obiektu".
- Parametry dla reszty Pmg obiektów definiowane są w konfiguratorze "PmgObject > Obiekt > Parametry obiektu".
 
Odczyt oraz zastosowanie parametru:

Parametr można odczytywać:

- w skrypcie przy pomocy metody GetPar.
- w konfiguratorach przy pomocy makro wyrażenia $.par (np. przy definicji powiązań danych).

Oby dwa zastosowania odczytują parametr sposobem kaskadowym, tzn. jeżeli obiekt, w którym makro/metoda jest zastosowana nie posiada takiego parametru, wtedy parametr jest wyszukiwany w jego rodzicu (w obiekcie, do którego jest zagnieżdżony) aż w końcu jest wyszukiwany w obiekcie PmgRoot.

Parametr jest stosowany zwłaszcza podczas kofniguracji powiązań danych Pmg obiektów. W tym przypadku Pmg obiekt (prosty lub złożony) może mieć zdefiniowaną większą ilość powiązań danych tak, że przez konfiguracyjną zmianę wartości parametru zmienią się również odniesienia do wartości w powiązaniach danych. Inne zastosowanie parametru spoczywa w parametryzacji tekstów w obiektach PmgString, PmgButton, itd.

 
Zmiana wartości parametru:
- Podczas działania aplikacji (w trybie runtime) ogólnie nie można zmieniać wartości parametru Pmg obiektu - jest stałą.

Wyjątkiem są parametry obiektu PmgRoot. Parametry te można zmieniać podczas otwierania panela (w odróżnieniu od parametrów w innych Pmg obiektach). Następnie przez cały czas otwarcia są parametry te bez możliwości zmiany. Wartości parametrów podczas otwierania panela można wprowadzić na dwa sposoby:

- wołaniem metody OpenView w parametrze sParams lub
Przykład: Panel można otworzyć po raz pierwszy z wartością 1, po raz drugi z wartością 2 - i w ten sposób po pierwsze wyświetlić panel dla "Kotlownia1" oraz po drugie dla "Kotlownia2".

- w środowisku deweloperskim naturalnie można wartości wszystkich Pmg obiektów zmieniać (można również dodawać lub odejmować parametry).

Główne znaczenie parametru Pmg obiektu jest w wytworzeniu interfejsu Pmg obiektu, kiedy przy skopiowaniu takiego Pmg obiektu można w prosty sposób zmienić jego parametry tak, że na przykład nie wyświetla danych "Kociol1" lecz dane "Kociol2". Tak więc parametr Pmg obiektu ułatwia wytwarzanie często stosowanych Pmg obiektów użytkownika w edytorze grafiki.


Przykład parametryzacji textu:

w obiekcie PmgString załóż parameter o nazwie na przykład NumerKotla, wartość ustaw na 1. W tym obiekcie wypełnij konfigurator "Wartość":

$.join("Temperatura w kotle", $.par("NumerKotla"))

Wynikiem jest wyświetlenie tekstu: Temperatura w kotle 1


Przykład parametryzacji powiązania danych:

Miejmy w aplikacji dane: "/Kociol1/Data" oraz "/Kociol2/Data" tego samego typu PmaData. We obu obiektach jest zdefiniowana zmienna "Temperatura. Następnie w panelu /PanelKotla znajdują się dwa obiekty do wyświetlenia obu temperatur. Jeżeli w przyszłości przybędzie następny obiekt, np. Kociol3, to żeby przez proste skopiowanie istniejącego obiektu powstał nowy obiekt wyświetlający temperaturę nowo dodanego obiektu.

Rozwiązanie:

- W obiektu typu PmgString (wyświetlającym wartość temperatury) wytwórz parameter o nazwie na przykład NumerKotla, wartość ustaw na 1.
- W konfiguratorze "Wartość" owego obiektu załóż powiązanie danych "PP - Powiązanie danych z właściwością Pma obiektu". W powiązaniu danych wpisz w:
- Konfigurator "Obiekt" następujący tekst:

$.join("/Kociol", $.par("NumerKotla"), "/Data/#vars/Temperatura")

- Konfigurator "Właściwość" zostanie automatycznie uzupełniony tekstem Value.

W ten sposób jest poprawnie ustawiony Pmg obiekt. Obecnie można poprzez kopiowanie tego obiektu i tylko poprzez zmianę parametru NumerKotla na 2 w tej kopii zapewnić, że ów skopiowany Pmg obiekt będzie wyświetlać wartość /Kociol2/Data/#vars/Temperatura. Kiedykolwiek w przyszłości można w prosty sposób poprzez zmianę parametru tego obiektu zmienić obiekt, którego wartość powinna być wyświetlana.


Przykład wytworzenia panelu graficznego z parametrem:

Miejmy w aplikacji dane: "/Kociol1/Data" oraz "/Kociol2/Data" tego samego typu PmaData. We obu obiektach jest zdefiniowana zmienna "Temperatura. Dalej istnieje panel /PanelKotla, który powinien wyświetlać temperaturę dla "Kociol1" lub dla "Kociol2" (według parametrów otwarcia okna).

Rozwiązanie:

- W panelu /PanelKotla w obiekcie PmgRoot wytwórz parameter o nazwie NumerKotla.
- Utwórz Pmg obiekt, na przykład PmgString (będzie wyświetlać wartość temperatury). W konfiguratorze tego obiektu Wartość załóż powiązanie danych "PP - Powiązanie danych z właściwością Pma obiektu". W powiązaniu danych wpisz w:
- Konfigurator "Obiekt" następujący tekst:

$.join("/Kociol", $.par("NumerKotla"), "/Data/#vars/Temperatura")

- Konfigurator "Właściwość" zostanie automatycznie uzupełniony tekstem Value.

Tym samym masz poprawnie ustawiony panel. Teraz pozostaje tylko zapewnić, żeby panel został otwarty zawsze z odpowiednim parametrem. Na przykład wytwórz sobie inny panel, z którego będziesz otwierać panel /PanelKotla. Do tego nowego panelu włóż dwa przyciski (Pmg obiekty PmgButton). Pierwszy przycisk będzie optwierać panel dla "Kociol1", drugi przycisk będzie otwierać ten sam panel dla "Kociol2". Do zdarzenia onButtonUp pierwszego przycisku wpisz następujący skrypt:

pMe.PmPanel.OpenView "/PanelKotla", "", "par:NumerKotla=1;"

Do tego samego zdarzenia następnego przycisku wpisz podobny skrypt:

pMe.PmPanel.OpenView "/PanelKotla", "", "par:NumerKotla=2;"

Obecnie uruchom aplikację i otwórz okno z przyciskami. Przez naciśnięcie pierwszego przycisku zostanie otwarte okno dla "Kociol1", przez naciśnięcie drugiego przycisku zostanie otwarte okno dla "Kociol2".


Historia:
Pm7.02.02: Wytworzono
© MICROSYS, spol. s r. o.Tavičská 845/21 703 00 Ostrava-Vítkovice