当前位置: 代码迷 >> PB >> 怎么判断鼠标按下弹起
  详细解决方案

怎么判断鼠标按下弹起

热度:67   发布时间:2016-04-29 08:44:03.0
如何判断鼠标按下弹起
我要再dw的cilick事件中写
if 鼠标按下弹起 then

....... 不知可行否 改怎么写,我找了好多地方都没有资料,现在网上pb资料太少了
我知道可以自定义事件调用 pbm_lbuttondown ,但是我要用到dwo.name pbm_lbuttondown里又不能用dwo 

在此请教各位了 谢谢

最后50分 没了

------解决方案--------------------
DWObject dwobjectvar

dwobjectvar = dwcontrol.Object.dwcontrolname

这样就取到dwo对象了,传到自定义函数里
------解决方案--------------------
左键按下用pbm_lbuttondown事件,事件里面没有dwo,但是可以通过以下方式获取dwo
C/C++ code
string ls_collong rowls_col = getobjectatpointer()if lower(left(getbandatpointer(),6)) <> 'detail' then returnif ls_col = 'datawindow' then returnrow = long(mid(ls_col, pos(ls_col, "~t") + 1)) //取得单击的行号ls_col = trim(left(ls_col, pos(ls_col, "~t") - 1)) //取得单击的列名dwobject dwodwo = this.object.__get_attribute(ls_col, true) //取得列对应的dwo
------解决方案--------------------
如果你要动态的取dwo 也行用__get_attribute函数可以取到dwo

dwobject ldwo_use,ldwo_name
ldwo_use = dw_1.object
ldwo_name = ldwo_use.__get_attribute('name',false)
------解决方案--------------------
__get_attribute是pb未公开的函数,在Pb7里的browse可以查看到
------解决方案--------------------

探讨
左键按下用pbm_lbuttondown事件,事件里面没有dwo,但是可以通过以下方式获取dwo

C/C++ code
string ls_col
long row
ls_col = getobjectatpointer()
if lower(left(getbandatpointer(),6)) <> 'detail' then return
if ls_col = 'dataw……

------解决方案--------------------
也可以用楼上的方法做到,本来是要写的,楼上已经写得很清楚了
GetObjectAtPointer ( )取到对象名称,然后用describe可以取到属性,用getitem系列函数可以取到值。
------解决方案--------------------
我只是给了个用法而已,还是偶没说清楚。

授人以鱼不如授人以渔
  相关解决方案