Parametry
Pma obiektu są stałymi (wytworzonymi przez projektanta), które można wytworzyć we wszystkich
Pma obiektach. Służy do parametryzacji aplikacji lub jej części. Służy przede wszystkim w koncepcji prototyp i instancji, gdzie umożliwia uwzględnienie różnic w poszczególnych instancjach jednego szablonu. Patrz konfigurator "
Parametry Pma obiektu".
Parametry
Pma obiektu są bardzo podobne do
parametrów Pmg obiektu.
Parametr posiada swoją nazwę oraz wartość:
Nazwa parametru: Jest to nazwa systemowa, może zawierać tylko znaki alfanumeryczne oraz nie może zawierać znaki diakrytyczne (tzn. narodowo zależne znaki), pusty łańcuch, spacje oraz pierwszy znak nie może być liczba.
Wartość parametru jest dowolny łańcuch tekstowy. Do wprowadzenia można zastosować
Makro wyrażenie (wartość jest obliczana po uruchomieniu aplikacji).
Uwaga! Jeżeli wartość parametru jest określona przy pomocy makro wyrażenia, wtedy ewentualne odniesienie do parametru
Pma obiektu (
Makro wyrażenie $.par) będzie się odnosić do parametrów rodzica, ponieważ parametry danego
Pma obiektu jeszcze nie istnieją (są dopiero wytwarzane).
Parametr
Pma obiektu można odczytywać przy pomocy metody
PmaObject.GetPar ale przede wszystkim parametr można zastosować jako
Makro wyrażenie $.par w konfiguratorach
Pma obiektów. Oby dwa zastosowania odczytują parametr
sposobem kaskadowym, tzn. jeżeli
Pma obiekt, w którym makro/metoda jest zastosowana nie posiada takiego parametru, wtedy parametr jest wyszukiwany w jego rodzicu. Taka procedura powtarza się, dopóki parametr nie jest znaleziony. Wyszukiwanie parametru (bąbelkowanie) jest zakończone w obiekcie
PmaRoot, który jest rodzicem wszystkich
Pma obiektów.
Uwaga dla prototypów i instancji: Dla obiektu
PmaInstance jest ważne, że przejmuje tylko parametry odpowiedniego obiektu
PmaPrototype, dla których może (lecz nie musi) określić ich
zmienione wartości. To znaczy, że instancja może tylko zmieniać wartości istniejących parametrów odpowiedniego prototypu. Instancja, lecz nawet rodzice instancji nie mogą dodawać nowych parametrów. Instancja (prototyp) ma dostępne tylko parametry zdefiniowane w prototypie, nie ma dostępu do parametrów rodzica instancji. W ten sposób jest zapewnione, że wszystkie instancje tego samego prototypu posiadają taki sam zestaw parametrów choć z różnymi wartościami. Obiekt
PmaInstance jest więc wyjątkowy z punktu widzenia wyszukiwania parametrów (bąbelkowania), ponieważ wyszukiwanie parametrów jest zakończone w tym obiekcie i nie jest kontynuowane do rodzica obiektu
PmaInstance. Z punktu widzenia parametrów instancja prototypu jest więc odseparowana od parametrów reszty aplikacji. Jeżeli jest konieczne uzyskanie parametru dla prototypu z rodzica instancji, wtedy jest konieczne taki parametr założyć w obiekcie
PmaPrototype (z taką samą lub inną nazwą) i odnieść się do parametru rodzica instancji albo tu albo w obiekcie
PmaInstance. Odniesienie do parametru rodzica można wykonać jako
Makro wyrażenie $.par w wartości parametru instancji lub prototypu.
Na przykład w prototypie załóżmy nowy parametr
boiler, którego wartość następnie ustawimy na wartość parametru
boiler rodzica instancji:
boiler:$.par("boiler");
Stosunek parametrów Pma obiektów oraz Pmg obiektów:
Ważnym jest, że można przekazać parametr
Pma obiektu do panela jako parametr
Pmg obiektu. Zasadą jest, że parametr
Pma obiektu nie jest automatycznie przekazywany do środka panelu (
Pmg obiekt "nie widzi" parametr, który jest zdefiniowany poza panelem). W panelu jest konieczne założenie odpowiedniego parametru w obiekcie
PmgRoot i podczas otwarcia panela ustawić go na wartość parametru
Pma obiektu. To można osiągnąć: