根据窗口画面功能进行测试,一切都很顺利。唯独在表达设备颜色代码中遇到问题如下:
如果触发弹窗的代码中变量前缀有"."如下红色部分:
BOOL IsWinVisible;
IsWinVisible = GetPropBOOL(lpszPictureName,"画面窗口1","Visible");
if(IsWinVisible)
{
SetPropBOOL(lpszPictureName,"画面窗口1","Visible",FALSE);
}
else
{
SetPropBOOL(lpszPictureName,"画面窗口1","Visible",TRUE);
SetTagPrefix(lpszPictureName,"画面窗口1","XV1001.");
SetPictureName(lpszPictureName,"画面窗口1","Model_Valva.Pdl");
}
那么“画面窗口1”中表达设备运行状态的前景色代码可以正常工作。
BOOL Opened,Closed;
Opened=GetTagBit("Opened");
Closed=GetTagBit("Closed");
if (Opened==1 && Closed==1)
return 0x00FFFF; //黄色
else if (Opened==1 && Closed!=1)
return 0x00FF00; //绿色
else if(Closed==1 && Opened!=1)
return 0x0000FF; //红色
else
return 0x00FFFF; //黄色
反之调整代码中变量前缀的位置在窗口画面中。按钮代码如下:
BOOL IsWinVisible;
IsWinVisible = GetPropBOOL(lpszPictureName,"画面窗口1","Visible");
if(IsWinVisible)
{
SetPropBOOL(lpszPictureName,"画面窗口1","Visible",FALSE);
}
else
{
SetPropBOOL(lpszPictureName,"画面窗口1","Visible",TRUE);
SetTagPrefix(lpszPictureName,"画面窗口1","XV1001");
SetPictureName(lpszPictureName,"画面窗口1","Model_Valva.Pdl");
}
窗口画面1 背景色代码
BOOL Opened,Closed;
Opened=GetTagBit(".Opened");
Closed=GetTagBit(".Closed");
if (Opened==1 && Closed==1)
return 0x00FFFF; //黄色
else if (Opened==1 && Closed!=1)
return 0x00FF00; //绿色
else if(Closed==1 && Opened!=1)
return 0x0000FF; //红色
else
return 0x00FFFF; //黄色
此时 点开弹窗颜色毫无变化,请问这是什么原因导致的。