首页 上一页 1 2 下一页 尾页

如何在 InTouch 中实现操作提示框 (Tip) 功能 点击:9671 | 回复:35



如火

    
  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-12-02 10:17:00
楼主
转贴

如何在 InTouch 中实现操作提示框 (Tip) 功能 
 
     此篇技术信息主要介绍了如何使用 Wonderware InTouch 的函数在 InTouch 中实现操作提示框的功能,即操作者将鼠标移至操作范围内时,可以自动出现提示框提示有关该操作的文字信息,如大家在目前 Windows 操作系统下见到的大多数应用那样。 

  
概要介绍 
    目前在 InTouch的画面制作中,有很多用户提出实现操作提示框的功能,而此功能在InTouch的标准版本中很难实现。Wonderware公司除了在InTouch的CD中提供的标准函数之外,还在多年的实践中增加了不少功能的函数,这些函数在Wonderware公司提供的KBCD中可以找到。本文正是利用KBCD提供的一些函数来实现InTouch的操作提示框功能。 

函数介绍 
首先将实现操作提示框功能需要的有关函数介绍如下:

1 WWContext 函数或 WWCntx32 函数 

调用方法: 

result = WWContext( Window, Left, Top, Width, Height, NameOfTag, Message ); 

result = WWCntx32(Window,Left,Top,Width,Height,NameOfTag,Message); 

      这两个函数的功能和调用方法基本一样,它们均定义了 InTouch 窗口中以 (Left,Top) 坐标点为左上角,宽度为 Width , 高度为 Height 的矩形区域。当鼠标移动至该区域内, InTouch 将会自动识别,并将 Message 的值赋给名为 NameOfTag 的消息型标记。 

2 GetCursorPosition 函数 

调用方法 

GetCursorPosition("Xtag", "Ytag", UseDesktop); 

该函数获取鼠标的位置,并将鼠标位置返回给 ( Xtag, Ytag ) 。 

因为我们已经有了 WWContext 函数, InTouch 能够自动地捕捉鼠标位置,开发者已不需要用脚本来捕捉鼠标位置。这里我们使用 GetCursorPosition 函数是为了控制提示框的显示位置。 

3 MoveWindow 函数 

调用方法 

     MoveWindow( WindowName , Left , Top , Width , Height ); 

     MoveWindow 函数将窗口名为 WindowName 的窗口的作上角移动到 ( Left, Top ) 坐标,并将窗口大小改变为宽度为 Width ,高度为 Height 。 

    使用 MoveWindow 函数与 GetCursorPosition 函数结合可以控制提示框的显示位置以及窗口大小。因为提示框的宽度是根据文字的宽度来决定的,所以需要用 MoveWindow 函数来同时改变提示框窗口的大小以及显示位置。   

具体实现方法 
    规划好需要显示提示框的操作区域,用 WWContext 或 WWCntx32 定义每一个这样的区域。注意,对每一个区域都要定义一次,该定义可以在应用脚本或是主窗口脚本中执行。例如,窗口 Main 有 Button1 和 Button2 两个按钮,它们所在的矩形区域用 ( Left,Top,Width,Height) 坐标来表示分别为 ( Left_Butn1, Top_Butn1, Width_Butn1, Height_Butn1) 和 ( Left_Butn2,Top_Butn2,Width_Butn2,Height_Butn2) 。在应用程序脚本,条件类型“运行时”,执行以下脚本: 

     WWContext(“Main”,Left_Butn1,Top_Butn1,Width_Butn1,Height_Butn1,TipString,”Button1”);
     WWContext(“Main”,Left_Butn2,Top_Butn2,Width_Butn2,Height_Butn2,TipString,”Button2”); 


    创建提示框窗口 TipWindow ,该窗口仅显示字符串 TipString 。该窗口风格可按照通用的提示框窗口,以黄色为背景色,框式样选择‘单一'。窗口宽度取你需要显示的最长一条提示字符串的宽度或更宽一点,高度取单个字符的高度,依你设计的字体而定。 


为了在合适的位置来显示提示框窗口,创建标记 TipString 的数据改变脚本如下: 

     GetCursorPosition(“X_Tag”,”Y_Tag”,1); 

     MoveWindow(“TipWindow”,X_Tag,Y_Tag,x*StringLen(TipString),HeightOfTipWindow); 

其中 x 之值为你所选定字体的单个字符宽度所占像素的个数。 
  

    这只是实现操作提示框的一种方式。你可以利用这些函数以及其他一些函数,根据具体的用户要求来按照用户所需要的方式进行具体的实现。 




饮欣

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-12-02 11:02:00
1楼
"这些函数在Wonderware公司提供的KBCD中可以找到",请问一下,这些函数是不是要单独安装KBCD的内容才有阿,在哪能找到这种安装盘,因为我在intouch的标准函数中没有找到。谢谢

如火

  • 精华:172帖
  • 求助:0帖
  • 帖子:803帖 | 5249回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-12-02 11:10:00
2楼
intouch的标准函数中是有的,KBCD只是函数说明帮助。

liyadu

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:5
  • 注册:2003年7月31日
发表于:2005-12-08 10:15:00
3楼
没有找到
在哪里有这几个函数

饮欣

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 10回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2005-12-09 13:44:00
4楼
我也没找到阿,还以为没认真看,后来又找了一边还是没有

工控111111

  • 精华:0帖
  • 求助:0帖
  • 帖子:29帖 | 82回
  • 年度积分:0
  • 历史总积分:171
  • 注册:2003年7月17日
发表于:2005-12-10 12:30:00
5楼
要另外再加数据文件才能支持以上的函数

LeeC

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 36回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2003年7月09日
发表于:2005-12-11 14:43:00
6楼
Intouch9.5已经增加了此项功能

婉儿

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 15回
  • 年度积分:0
  • 历史总积分:48
  • 注册:2003年1月07日
发表于:2005-12-19 16:32:00
7楼
intouch7.11中没有呀,能不能加上?

辛`

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 6回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年3月30日
发表于:2006-04-01 23:58:00
8楼
我是刚刚接触INTOUCH的``谢谢

if{[(..else..)]}endif

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 60回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2003年3月19日
发表于:2006-04-06 20:57:00
9楼
Intouch9.5也没找不到

if{[(..else..)]}endif

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 60回
  • 年度积分:0
  • 历史总积分:103
  • 注册:2003年3月19日
发表于:2006-04-07 18:04:00
10楼
LZ的帖子是转自Wonderware技术支持的吧。
原文里有KBCD相关的链接
http://www.wonderware.com.cn/support/technote/technote001.asp

chenggong

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 7回
  • 年度积分:0
  • 历史总积分:235
  • 注册:2005年8月04日
发表于:2006-04-21 15:57:00
11楼
hao

xuerbing

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 42回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2006年6月09日
发表于:2006-06-15 16:07:00
12楼
我装的就是intouch 9.5,我也没有找到这些函数。请问,到底在哪里啊?

生活

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 8回
  • 年度积分:0
  • 历史总积分:297
  • 注册:2003年5月14日
发表于:2006-06-25 19:30:00
13楼
9.5版本里直接填写就行了,不需要调用函数的

海港湾

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 6回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2006年8月05日
发表于:2006-09-12 19:06:00
14楼
haohao

三宝树

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 92回
  • 年度积分:0
  • 历史总积分:818
  • 注册:2004年10月18日
发表于:2006-10-26 11:20:00
15楼
如果在TRACE MODE 6 软件中来实现这个功能,简直是小CASE.我用过TRACE MODE 6 基础版的,挺不错的。
便于大家学习和使用,我把TRACE MODE 6的网站连接粘贴如下:
[url=www.tracemode.cn]www.tracemode.cn[/url]

三宝树

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 92回
  • 年度积分:0
  • 历史总积分:818
  • 注册:2004年10月18日
发表于:2006-10-26 11:21:00
16楼
[url=http://www.tracemode.cn]http://www.tracemode.cn[/url]

三宝树

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 92回
  • 年度积分:0
  • 历史总积分:818
  • 注册:2004年10月18日
发表于:2006-10-26 11:23:00
17楼
该网站上的内容比较翔实,我们工控行业的兄弟们又多了一个选择了。
好的东东,我们共同分享!

愿学者

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1674回
  • 年度积分:0
  • 历史总积分:3355
  • 注册:2006年10月26日
发表于:2006-11-09 13:43:00
18楼
我喜欢该网站,有很多可学习的内容.

愿学者

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 1674回
  • 年度积分:0
  • 历史总积分:3355
  • 注册:2006年10月26日
发表于:2006-11-09 13:45:00
19楼
请多支持啊!

club

  • 精华:0帖
  • 求助:0帖
  • 帖子:47帖 | 739回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-11-09 14:16:00
20楼

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页