在FreeForm DW中用方向键控制上下左右切换列

姓名:李小龙         性别:男               生日:1970-01-01
国家:中国            爱好:武术            特长:截拳道         
作品:唐山大兄      偶像:叶问    

如上:焦点现在在【爱好】上,如果按向上键就到【性别】,向下键就到【偶像】,向左键就到【国家】,向右键就到【特长】。
这样的效果如何实现?

 

我们可以通过遍历所以列,然后在datawindow的key事件中去判断该将焦点移动哪个列上,具体做法如下:

 

(1)建立一个grid类型的数据窗口d_obj_free,用来存储freeform数据窗口的所有列,该数据窗口包含5个列

 

 

(2)建立一个继承自datawindow的标准的控件对象:uo_datawindow

由于datawindow可以为列的visible, protect等属性设置expression内容,因此在读取这些属性时不能单纯的使用describe,在uo_datawindow中建立一个取属性的函数of_describe(string as_describe, long row)

 

(3)在uo_datawindow中建立实例变量: datastore ids_obj ,用来存储列对象,在uo_datawindow的constructor事件中对datawindow进行遍历,并存到ids_obj中:

 

(4)uo_datawindow中建立一个取指定方向列名的函数of_getcol (string as, string ap) //as表示当前焦点列,ap表示方向

 

(5)在uo_datawindow的key(对应的Event ID:pbm_dwnkey)事件中,对keycode进行判断处理,并切换焦点

 

(6)至此,需要的功能就实现了,通过uo_datawindow建立一个数据窗口试试看吧

 

 

下面附上uo_datawindow和d_obj_free两个对象的导出内容

<1>d_obj_free, 直接复制内容保存为 .srd格式文件,然后导入

 

<2>uo_datawindow, 直接复制内容保存为 .sru格式文件,然后导入

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值