我想做个RESET按钮,按钮调一个画面A,通过A画面中的YES来输出RESET,
做法如下:1:写按钮C脚本
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
BOOL f;
LINKINFO lnk;
char tag[255];
f = GetLink(lpszPictureName,lpszObjectName,"Operation",&lnk);
sscanf(lnk.szLinkName,"%[^.]",tag);
SetVisible(lpszPictureName,"OAR-RESET",1); //Return-Type :BOOL
SetText("OAR_RESET.pdl","BlockName",tag); //Return-Type :BOOL
SetTagChar("OP_RESET_CONTROL",tag); //Return-Type :BOOL
}
2:在A画面
对YES写脚本
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
char tag[255];
int i,j,n;
char pic_name[256];
char obj_name[60];
strcpy(tag,GetTagChar("OP_RESET_CONTROL"));
//printf("%c",tag);
strcat(tag,".OP_RESET");
SetTagBit(tag,1); //Return-Type :BOOL
//SetTagBit("F3B-MUAO1/R.OP_RESET",1);
// Close window
n = strlen( lpszPictureName );
for ( i = n; i > 0; i-- )
if ( lpszPictureName[i] == ''.'' )
{
strncpy( pic_name, lpszPictureName, i );
strcpy( obj_name, &lpszPictureName[i+1] );
for ( j = 0; j < (n-i); j++)
if ( obj_name[j] == '':'' )
{
obj_name[j] = ''\0'';
break;
}
SetVisible(pic_name,obj_name,FALSE);
break;
}
}
但现在运行点RESET出不来画面
是不是哪错了?帮忙看看,谢谢了
问题补充:
其中: A就是OAR—RESET
最佳答案
要在主画面(比如叫start.pdl)中插入一个picture window的控件,比如控件名叫PopWindow。该控件连接的图片比如叫popup.pdl。
1.按钮C脚本中显示该图的脚本就是:
SetVisible("start.pdl","PopWindow",1);
2.popup.pdl中关闭窗口的脚本就是:
SetVisible("start.pdl","PopWindow",0);
其他你按实际要求编程即可。
提问者对于答案的评价:
大家都对的
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc276924.html