Page 1 of 1

Skript pro změnu proměnné

PostPosted: Fri 21. May 2021 17:57:37
by Kushnerov
Dobrý den.
Vytvářím dvě proměnné a tlačítko. Když kliknu na tlačítko, spustí se skript, který převede hodnotu z var1 na var2.

Code: Select all
var var1 = pMe.Pm ("/ Data / # vars / var1");
var var2 = Pm.Pm ("/ Data / # vars / var2");
var2.Value = var1.Value;
Pm.Debug („dobrý“);


Ale nefunguje to. Připojuji projekt.

Re: Skript pro změnu proměnné

PostPosted: Thu 03. Jun 2021 6:42:12
by albiman
Tento způsob práce s proměnnými v PmaData byl možný pouze u starších verzí Promoticu ve VBscriptu.
Od širšího rozvoje aplikací na web prostředí a JavaScript (více oddělené prostředí Pma a Pmg), je nutný jiný způsob práce s objekty v PmaData:
- Na kartě "proměnné" ve vlastnostech tlačítka (viz obrázek), kde se provádí skript, se vytvoří proměnné například webvarX s datovou vazbou PP na objekt PmaData (tím je zajištěna obousměrná vazba pro aktuální hodnotu).
Dále pak ve skriptu události OnButtonUp pak přistupujeme k proměnným grafického prvku, zde tlačítko (lze i přistupovat k jiným grafickým objektům). Zápisem do těchto proměnných se díky datové vazbě PP přenesou hodnoty do proměnných PmaData objektu.
Code: Select all
var var1 = pMe.Items("#vars/webvar1");
var var2 = pMe.Items("#vars/webvar2");
var2.Value = var1.Value;
Pm.Debug("Ok");


Obecně doporučuji takto pracovat s daty mezi Pma objekty a Pmg prvky. Je to bezpečný způsob práce pro webový přístup a i v pouze čistě lokální aplikaci se takto předejde ke komplikacím v budoucnu při upgradu na novější verze Promoticu.
Tento způsob používám i při předávání proměnných v rámci grafického prvku, potažmo celé obrazovky (k jednotlivým grafickým prvkům lze přistupovat obdobně).
V případě nutnosti změny cesty/objektu v Pma stačí pak provést změnu pouze na jednom místě obrazu.

V případě nutnosti např. vyvolání alarm/event události z grafického prostředí, je nejlepší z obrazu volat uživatelskou metodu PmaPanelu v aplikaci, kde se provede zápis proměnné a zároveň událost.

Dále je velmi užitečný průvodce skriptem (pravé myšítko v okně skriptu).

Snad jsem to popsal srozumitelně. :D