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

Toto je hlavní technické fórum pro diskusi o problémech při vytváření PROMOTIC aplikací a jejich řešení.

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

Postby patrik » Thu 05. Jan 2017 9:55:52

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ěď.
patrik
 
Posts: 3
Joined: Tue 25. Oct 2016 16:44:37

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

Postby Kazimierz Heczko » Thu 05. Jan 2017 10:34:37

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
Kazimierz Heczko
 
Posts: 68
Joined: Thu 13. Dec 2012 9:28:56


Return to Nevím jak...

Who is online

Users browsing this forum: No registered users and 10 guests