首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 两个数据窗口滚动条同步滚动,但分隔条和列拉动时能不能也同时进行。 [已结贴,结贴人:raijk]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-08 12:41:04 楼主
    两个数据窗口滚动条同步滚动,可以用如下办法:
    在dw_2的scrollhorizontal中加入:
    dw_1.Object.datawindow.HorizontalScrollPosition = scrollpos
    即可。
    但dw_2的分隔条和某列拉动时能不能使dw_1的也同时进行?请教高手!
    120  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sinlan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 13:22:311楼 得分:0
    没看明白意思
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 13:46:472楼 得分:0
    不好意思,说得不够明白:(
    即是dw_2的分隔条移动时,dw_1的分隔条也移动到同样间距。
    dw_2的列拉动时,dw_1的相应列也拉动同样的间距。
    假设dw_1和dw_2是同样条件的DW和同样的数据源。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 15:36:513楼 得分:0
    如有高手能解决问题,可以将我的分数一半加给他!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • baiynije
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 15:42:304楼 得分:0
    應該可以寫代碼實現
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sinlan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 16:09:515楼 得分:0
    既然都用了两个datawindow,为什么还要用分隔线?
    列拉动?是否是横向的滚动条?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 17:31:546楼 得分:0
    是要求一个DW跟随另一个DW一起变动!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 17:41:217楼 得分:0
    每个dw窗口都有自己的灰色分隔条,可以拉成左右两部分,每个DW窗口的数据列都可以拉动以加大或减小列宽,对吧?
    现在就是想两个DW一起变动,用鼠标操作一个的时候,另一个用代码操作作同样的变动。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • guest78978
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 17:44:298楼 得分:60
    grid数据窗口改变列宽度事件:
    event:pbm_lbuttondown,pbm_mousemvoe,pbm_lbuttonup

    自定义一个 pbm_lbuttonup的事件
    long i,count
    string ls_sytax
    count= long(dw_1.object.datawindow.column.count)
    for i=1 to count
    ls_sytax = dw_1.describe("#"+string(i)+".Name")+".Width="+dw_2.describe("#"+string(i)+".Width")
    dw_1.modify(ls_sytax)
    next

    拖动几下,看看效果怎么样
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • guest78978
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 17:46:439楼 得分:0
    两个dw的内容列必须是相同的,也就是必须采用相同的dw才能这样用
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 18:01:3810楼 得分:0
    郭巴的思路可以,速度快一点的可以改进如下:

    自定义一个 pbm_lbuttonup的事件
    long i,count
    string ls_sytax,ss
    count= long(dw_1.object.datawindow.column.count)
    for i=1 to count
    ss = dw_1.describe("#"+string(i)+".Name")+".Width="+dw_2.describe("#"+string(i)+".Width")
    ls_sytax =ls_sytax +" "+ss
    next
    dw_1.modify(ls_sytax)

    但问题是:pbm_lbuttonup事件是鼠标刚放开时的动作,事件的代码运行结束后,列宽才改变成新的宽度。
    因此这种做法的效果是变成上一次拉动列宽时的尺寸。
    还是谢谢郭巴
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-08 18:26:0711楼 得分:0
    更正:只要在pbm_erasebkgnd的自定义事件加上如上代码即可,而不是pbm_lbuttonup事件。

    但分隔条的一起变动的问题仍未解决。
    关键是怎样找到HSplitScroll的位置属性,并在dw_2的pbm_erasebkgnd中重绘DW_1的分隔条。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sinlan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 09:42:1912楼 得分:60
    dw_2.Object.DataWindow.HorizontalScrollSplit = dw_1.Object.DataWindow.HorizontalScrollSplit
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • raijk
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-24 10:52:0613楼 得分:0
    两位回答正确,各奖60分!
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved