Page 1 of 1

Spuštění časovače a viditelnost graf. prvku

PostPosted: Thu 05. Jan 2017 9:55:52
by patrik
Dobrý den,

v Promoticu mám časovač Timer0, který chci spustit po stlačení buttonu.
V události jsem zkoušel toto, ale nefunguje mi to:

Dim tm
Set tm=pMe.PmPanel.Pm("../Timer0")
tm=oTimer.Enabled

Další otázku mám s viditelností grafického prvku PmiCanvas.
V položce viditelný mám $db.PP(0,"../Komunikace/CommModbus/Data/#vars/I_K1","Value",0) - při log. 1 (proměnné I_K1) je tedy viditelný. Potřeboval bych ale tuto funkci obrátit - při log. 0 viditelný a při log. 1 neviditelný. Jak to udělat?

Děkuji za odpověď.

Re: Spuštění časovače a viditelnost graf. prvku

PostPosted: Thu 05. Jan 2017 10:34:37
by Kazimierz Heczko
Dobrý den,

záležitost s časovačem se dá vyřešit použitím dvoustavového tlačítka, které si napojíte přímo na vlastnost Enabled daného časovače. Tím pádem není nutné toto řešit ve skriptu.
Nicméně i ve skriptu by to mělo fungovat, ale je potřeba si uvědomit některé věci.
1. V nových aplikacích jsou většinou používané JavaScript obrazy (každý vytvořený PmPanel má přednastavený skriptovací jazyk na JavaScript).
2. Takový skript nebude správně fungovat na WEBu - z WEBu není možné přímo pracovat s objekty v editoru aplikace.

Pokud toto chcete řešit ve skriptu, pak doporučuji toudělat nálsedovně:
1. V události tlačítka zavolat vlastní metodu PmPanelu, ve kterém se toto tlačítko nachází. Tím dojde k provedení metody NA SERVERU.
2. V metodě příslušného PmPanelu, kterou si samozřejmě musíte vytvořit pak již můžete jednoduše pracovat s příslušným časovačem.

Skripty by pak mohly vypadat následovně:
Skript v události tlačítka (jednostavového) - řeší pouze zapínání časovače (syntaxe pro JavaScript):
Code: Select all
pMe.PmPanel.Methods.RunTimer();

nebo (syntaxe pro VBScript):
Code: Select all
pMe.PmPanel.Methods.RunTimer


v objektu PmPanel si pak musíte vytvořit metodu, která se bude jmenovat RunTimer a v ní by byl následující kód (v syntaxi VBScriptu):
Code: Select all
pMe.PmPanel.Pm("../Timer0").Enabled = true


Nicméně za předpokladu, že daný panel je přepnutý do jazyka VBScript a aplikace není zpřístupněná do WEBu (a konfigurátor "Úroveň integrace prohlížečky obrazu a lokální aplikace" je nastavený na volbu "Full..."), pak je možné časovač přímo zapnout i v události tohoto tlačítka:
Code: Select all
pMe.PmPanel.Pm("../Timer0").Enabled = true


Pokud jde o viditelnost grafických prvků pak místo jednoduché datové vazby PP můžete použít vazbu typu E, kde jako řídidí proměnnou použijete uvedenou vazbu PP a jako výraz napíšete toto (negace v syntaxi JavaScript):
Code: Select all
!v1