Změna barvy kontrolky

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

Změna barvy kontrolky

Postby milan.hlavac » Thu 20. Jun 2019 13:05:21

Dobrý den,

chtěl bych dynamicky měnit barvu kontrolky PmiCanvas. Zkusil jsem pomocí skriptu onRefresh v MainPage.

Dim semafor_zel
Set semafor_zel= pMe.Pm("../OpcClient/Data/#vars/Q_sem_zel")

If semafor_zel= true Then
pMe.Items("./Canvas").pars.imgColor="#0bffd0"
Else
pMe.Items("./Canvas").pars.imgColor="#a0fa00"
End If

Ale nefunguje :-(

Děkuji... Milan
milan.hlavac
 
Posts: 1
Joined: Thu 20. Jun 2019 12:58:51

Re: Změna barvy kontrolky

Postby Pavel Klimíček » Tue 25. Jun 2019 11:45:42

Dobrý den.
Předpokládám, že jste použíl grafický objek z naši předkonfigurace nazvaný "Signálka" kruhová nebo obdélník.
Obě mají mají na řádku 11 v záložce "Draw" metody "DrawImg" zakomentářovaný řádek který řeší změnu barvy na základě změny hodnoty v proměnné "state" (false nebo true).
Tento řádek odkomentářujte.
Pak v založce "Proměnné" založte proměnnou typu Boolean kterou nazvete "state".
Tuto následně napojte vazbou PP na proměnnou v aplikaci, která bude tento stav určovat (například 1=zelená, 0=šedá).

Samozřejmě jsou možné i jiné varianty:

- hodnota proměnné bude vyjadřovat více stavů 0-4, ...
Pak musíte založit a napojit proměnnou typu "Integer" a ve skriptu metody "DrawImg" vytvořit "switch", který každému stavu přidělí příslušnou barvu například takto:
Code: Select all
switch (pEvent.GetVar("state").Value)
{
   case 0: sColor = "#acacac"; break;
   case 1: sColor = "#00ff00"; break;
   case 2: sColor = "#ff0000"; break;
   case 3: sColor = "#ffff00"; break;
   case 4: sColor = "#ff00ff"; break;
}


nebo
- hodnota proměnné příslušnou barvu nastaví přímo
Pak musíte založit a napojit proměnnou typu "String" a skript upravit takto:
Code: Select all
var sColor = pEvent.GetVar("state").Value;
Pavel Klimíček
 
Posts: 73
Joined: Thu 13. Dec 2012 15:35:59


Return to Nevím jak...

Who is online

Users browsing this forum: Bing [Bot] and 4 guests

cron