[原创]RegisterUserFunction的妙用

上一篇 / 下一篇  2008-12-09 17:54:22 / 个人分类:QTP

51Testing软件测试网8|1I\'_]jmkq J

写好了,fish你来吧!

,\Izk {6hl)~}051Testing软件测试网"g YZ%wo+f

各位:51Testing软件测试网(q@{&ibGI

51Testing软件测试网)a7uO f5i6qmx

  都知道WinEdit没有复制方法吧?不信你点一下,我看看!好我们给他实现一下,并且然后实现智能代码感51Testing软件测试网p_ V[*}1p1O5C W

HV7EA Z0知,就是说在WinEdit后.一下就会出Copy来,酷吧!看我来实现!!

$C$xm G:L T!l&F0

*c Xz!?,Y7v0注:本节不是主要讲实现编辑框的复制,主要教你怎么给Qtp挂上自己的智能感知!51Testing软件测试网W;XxP4@
51Testing软件测试网/`oD;X(P

m K!q^M7fi8g)d'z0使用小飞机程序作例子,代码如下:

p| l2HNpO(sh051Testing软件测试网*k)i?EL)}0k:x

RegisterUserFunc "WinEdit", "Copy", "EditCopy" ,True51Testing软件测试网^:d d.y8bxF{4u

b(HcAY0Sub EditCopy ()
4CEn*C,YV:i0 Set TestEdit = Dialog("Login").WinEdit("Agent Name:")51Testing软件测试网1~mM O5l
 51Testing软件测试网)E P~x'RN5g.~h z
 With TestEdit
3E\(p eOy0  .SetSelection 0,Len(TestEdit.GetROProperty("text"))51Testing软件测试网!dnfm,n:C T;{"x c
  
][gl[X9W1y0  .Type micCtrlDwn + "c" + micCtrlUp
|;pE(h%u1s!n0  51Testing软件测试网W9VU&pbo'{e u E
 End with
^RP PiIna3uH0 
Xw B jO\0End Sub

:h H*LLSPs0

+P9l VQI0SystemUtil.Run "C:\Program Files\Mercury Interactive\QuickTest Professional\samples\flight\app\flight4a.exe"

4m9R*xPKDA+H(E'ml0O051Testing软件测试网 h#FHDN

Dialog("Login").WinEdit("Agent Name:").Set "kakamissyou"51Testing软件测试网}{'E#B!x;x j
Dialog("Login").WinEdit("Agent Name:").Copy

Fd4vt S i0

$O!_7a,uX%cp'N0UnRegisterUserFunc "WinEdit","Copy"

~aC`a-Z,wIsm9D0

*j#M8Hz LR[?1U!z0Dialog("Login").WinEdit("Agent Name:").Copy
S:wrOV9EMN0 'If you used the copy method  after unregister it,you would get a  error message about that  object doesn't support the copy method.51Testing软件测试网 r I/@^:C3e)`

51Testing软件测试网9@0HS8Ti

msgbox "stop here!"

w)afb&e/tf7z&LP0

d4{.D8j9_&zc#D^m0先来看看效果:51Testing软件测试网g l[B{)Md]

nu V.qR \){_051Testing软件测试网Zj B7j(@9?a

2~@7t'yD!c/B0那是怎么实现的呢?主要靠这个RegisterUserFunc "WinEdit", "Copy", "EditCopy" ,True这句。51Testing软件测试网'K?qG~

51Testing软件测试网UH ^ z"@t@Ij

WinEdit是要挂接的对象类,EditCopy是我们制作的Function,Copy则是你在WinEdit后面。一下出来的方

,J1W4u7H:JvA C051Testing软件测试网;?6?q ^,{"PZmbk

法!如果你要注册的方法,如本例的Copy没有在WinEdit类中存在的话就会给新加上一个。就像本例!

@8q0Z8lDl?Z051Testing软件测试网8E9S4]#e(eAND%w

如果这个方法已经存在的话就会替换到原来的方法,从而可以实现重写原来的方法!

2G&Y VVB7\0

\ w}kS?EP7G0总结:

$@e"j0n.oM ppM s051Testing软件测试网OQI.L?q"X&e

1.用这种方法可以实现继承,网上有人叫重载,我真不知道他们怎么读,是他们错了,还是我错了?

s$x fB'[b0

onn P&sL+?i)Dpp%M0  具体请查看帮助!相当于调用此类的父类的方法!

U2`q1v%jXA"X`0

*\7oD4dnDj5ig02.用这种方法可以实现重写原来的方法。51Testing软件测试网3A DXZ%w%kl(Q;r:m

1]/P,S!iig:g+f03.用这种方法可以实现继承并且原来的基础上添加一些功能。以简化开发。王道!

rG9muD m8~/}:Nb+~051Testing软件测试网y4{B-~)S

 

s5Uro!K'sp0

-S]-c N~kI9E1P051Testing软件测试网1KLs/Ye2Y


TAG: QTP

 

评分:0

我来说两句

Open Toolbar