鼠标移到数据窗口上时所在行字段改变颜色(或其它属性)

来源:互联网 发布:软件测试工程师面试题 编辑:程序博客网 时间:2024/05/17 22:02
鼠标移到数据窗口上时所在行字段改变颜色(或其它属性)(网友 hhcf)

 

网友:hhcf Email: smartfan@8848.net

//首先在数据窗口所在窗口中定义如下实例变量:
    string is_header,is_detail
    boolean ib_color

 
//在窗口open事件中取数据窗口header和detail的高度用于下一步计算:
    is_header = dw_1.Object.DataWindow.header.height
    is_detail = dw_1.Object.DataWindow.detail.height
 
//为数窗定义一个mousemove用户事件并编写如下脚本:
    int li_currentno,li_rowno
    string ls_firstno  //用FirstRowOnPage取出的当前数窗显示的第一行行号变量须定义为字符型
//如ib_color为假,则修改字段颜色表达式(假定改为红色。注意:表达式中0和if必须用tab键分隔)并将ib_color设为true
    IF Not ib_color THEN
       dw_1.object.columnname.color = "0    if(CurrentRow() = GetRow(),rgb(255,0,0), rgb(0,0,0) )"
       ...
       ib_color = true
    END IF
 
//取数据窗口当前显示行中光标所在行
    li_currentno = (ypos + integer(is_header)) / integer(is_detail)
 
//取数据窗口当前显示行第一行的实际行号
    ls_firstrow = dw_1.Object.DataWindow.FirstRowOnPage
 
//计算光标所在行的实际行号(即记录号)
    li_rowno = integer(ls_firstrow) + li_currentno - 1
 
//将该行设为当前行,使字段根据条件进行变色
    dw_1.SetRow(li_rowno)
 
//在窗口mousemove事件将字段改回原来颜色(假设为黑),并将ib_color设为false:
    dw_1.object.columnname.color = rgb(0,0,0)
    ...
    ib_color = false
   
//采用这种方法,可以对数据窗口字段的其它属性进行类似修改。
 
//已在pb6.0测试通过。请指正!
 
原创粉丝点击