鼠标移到数据窗口上时所在行字段改变颜色(或其它属性)(网友 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
is_header = dw_1.Object.DataWindow.header.height
is_detail = dw_1.Object.DataWindow.detail.height
//为数窗定义一个mousemove用户事件并编写如下脚本:
int li_currentno,li_rowno
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
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)
li_currentno = (ypos + integer(is_header)) / integer(is_detail)
//取数据窗口当前显示行第一行的实际行号
ls_firstrow = dw_1.Object.DataWindow.FirstRowOnPage
ls_firstrow = dw_1.Object.DataWindow.FirstRowOnPage
//计算光标所在行的实际行号(即记录号)
li_rowno = integer(ls_firstrow) + li_currentno - 1
li_rowno = integer(ls_firstrow) + li_currentno - 1
//将该行设为当前行,使字段根据条件进行变色
dw_1.SetRow(li_rowno)
dw_1.SetRow(li_rowno)
//在窗口mousemove事件将字段改回原来颜色(假设为黑),并将ib_color设为false:
dw_1.object.columnname.color = rgb(0,0,0)
...
ib_color = false
//采用这种方法,可以对数据窗口字段的其它属性进行类似修改。
dw_1.object.columnname.color = rgb(0,0,0)
...
ib_color = false
//采用这种方法,可以对数据窗口字段的其它属性进行类似修改。
//已在pb6.0测试通过。请指正!