100分提问一个老问题:如何在DW中按照指定颜色高亮显示被点击的行!

pigherd 2002-03-10 01:39:35
如何在DW中按照指定颜色高亮显示被点击的行?

用selectrow()好象是没戏了,有人提议在DETAIL的COLOR中写下列语句,
if(currentrow() = getrow(),rgb(x1,y1,z1),if(mod(getrow(),2) = 0,rgb(x2,y2,z2),rgb(x3,y3,z3)))
好象也不能解决问题!

在DW的CLICKED事件中如何实现上述在DETAIL的COLOR中写语句的功能?
兄弟查了帮助也没得逞!希望高手给出比较细致的解答!解到放分!
谢谢!
...全文
28 点赞 收藏 10
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hanson_bati_zhu 2002-03-11
试试
在RowFocusChanged事件中写

THIS.SetRedraw(TRUE)

应该使用上面的表达式就能有作用了
回复
jingweishu 2002-03-11
刚才刚刚试过保证好用,在grip数据窗口模式下在每个字段下的backgroundcolor属性中添加if(isselected(),rgb(100,100,100),rgb(0,0,0))即可只要单击改行就会该行的背景颜色。
回复
jingweishu 2002-03-11
我建议在数据窗口的属性中的color属性中设定,然后在单击该行时激活该color属性,就可以实现不过本人没试过。
回复
junyong 2002-03-11
你可以参考参考
http://www.pbtips.com/cgi-bin/leo/topic.cgi?forum=6&topic=18
有个例子,可以下载。
回复
rongrong 2002-03-11

动态画一个 "长方形" 怎么样 ?

我有现成的代码,需要的话留下 EM 。
回复
killerdanny 2002-03-11
http://www.csdn.net/expert/topic/408/408396.xml?temp=.6385157
回复
nana11 2002-03-11
1、可以指定一个字段的tag属性,设置你要的颜色值
2、然后修改,先取出这个值,用修改函数改变。
回复
lesni 2002-03-10
方法1---给每个字段detail区的属性中, color = 'if(getrow()=currentrow(), rgb(255,255,0),0)'
其中数值可以使用函数传递变量。

方法2---
1,添加一个空字段,即DataWindow的Sql为:Select '',col1,col2... 其中''字段取名为sel
添加一Instance变量:int ii_sel = 1

2,dw_1.Object.col1.background.color='case( sel when ~'col1~' + String(getRow()) then rgb(0,255,0) else rgb(255,255,255))'
...
//每个列都这样定义一下,其中rgb中的数值就可以用变量了。

3,DataWindow的Clicked事件:
If Row < 1 Or Row > RowCount() Then Return
dw_card_info.Object.sel[ ii_sel ] = ''
dw_card_info.Object.sel[ Row ] = 'col1' + String(Row)
ii_sel = row

OK啦,
回复
QiHY 2002-03-10
"if(getrow()=" + string(row) + ......
上面的row为click事件中的参数,然后用上面的字符串进行modify。
回复
QiHY 2002-03-10
"if(getrow()=" + row + ")..."
回复
发动态
发帖子
非技术版
创建于2007-09-28

378

社区成员

PowerBuilder 非技术版
申请成为版主
社区公告
暂无公告