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

如何在 InTouch 中实现操作提示框 (Tip) 功能 点击:9681 | 回复: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 之值为你所选定字体的单个字符宽度所占像素的个数。 
  

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




club

  • 精华:0帖
  • 求助:0帖
  • 帖子:47帖 | 739回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2007-01-11 13:23:00
21楼
9.5的也不行呢,直接写的时候还要定义

club

  • 精华:0帖
  • 求助:0帖
  • 帖子:47帖 | 739回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2007-01-16 14:32:00
22楼
请多支持啊!

刘超1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2007年3月30日
发表于:2007-04-14 11:02:00
23楼

刘超1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2007年3月30日
发表于:2007-04-14 11:05:00
24楼
Intouch9.5有这个功能,不用写脚本.在动画链接的工具提示里写就行.

刘超1

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2007年3月30日
发表于:2007-04-14 11:07:00
25楼
目前好象只有9.5有这个功能,9.0及更老的版本都没有

hhl136

  • 精华:0帖
  • 求助:0帖
  • 帖子:42帖 | 138回
  • 年度积分:0
  • 历史总积分:351
  • 注册:2003年7月09日
发表于:2007-04-16 13:39:00
26楼

club

  • 精华:0帖
  • 求助:0帖
  • 帖子:47帖 | 739回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2007-06-11 12:43:00
27楼
  顶 

随风而行的爱

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 39回
  • 年度积分:0
  • 历史总积分:692
  • 注册:2005年3月13日
发表于:2007-07-24 17:34:00
28楼
我也想知道在那里可以找到该函数啊!不太熟悉!

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-07-28 23:32:00
29楼
人家“创世纪32“不需要写脚本,它有一个地方让我们填上说明,在运行时,把鼠标移到物件上面,Tips就显示出来,七年前已经有!

卧龙浪子

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 89回
  • 年度积分:0
  • 历史总积分:195
  • 注册:2006年11月01日
发表于:2007-08-01 21:33:00
30楼
Intouch9.5有这个功,把鼠标移到物件上面,Tips就显示出来,9.5t推出的那一年已经有了!

向左转

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:4
  • 注册:2007年8月16日
发表于:2007-08-16 14:12:00
31楼
赞LZ,学习一下,可能在项目中用得到!

tcs

  • 精华:0帖
  • 求助:0帖
  • 帖子:68帖 | 526回
  • 年度积分:0
  • 历史总积分:768
  • 注册:2004年8月25日
发表于:2007-08-16 20:30:00
32楼
在运行时,把鼠标移到动态物件上面,该动态位号就显示出来,这个功能很有用,当在调试的时候,马上就知道这动态物件是连接到哪个位号,很方便,不知道InTouch有没有这功能,请千万不要告诉我用脚本,编写脚本不是项目工程师的强项,动不动就写脚本,不觉得麻烦吗?

1221

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 92回
  • 年度积分:0
  • 历史总积分:190
  • 注册:2007年5月24日
发表于:2007-08-27 14:13:00
33楼
学习中

yanghs430

  • 精华:0帖
  • 求助:0帖
  • 帖子:38帖 | 33回
  • 年度积分:0
  • 历史总积分:200
  • 注册:2004年5月29日
发表于:2008-01-06 20:46:00
34楼
我记得9.5版本已经可以自带了这个功能了啊

工控哥

  • 精华:2帖
  • 求助:0帖
  • 帖子:423帖 | 3890回
  • 年度积分:0
  • 历史总积分:7026
  • 注册:2003年5月05日
发表于:2010-05-22 21:26:40
35楼
以前做工程的时候采用脚本制作

热门招聘
相关主题

官方公众号

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