求最少量代码实现DBGrid点击滚动条左右两端移至最左、最右端

NongCunGongLu 2014-10-04 05:52:13
DBGrid不能完全显示时,用户点击横向滚动条的右端箭头,则整页向右移动至右端显示;点击左箭头时,整页移回左极端。
要用WM_HSCROLL消息吗,怎样写呢,多谢
...全文
182 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
NongCunGongLu 2014-10-04
  • 打赏
  • 举报
回复
可以用。谢谢
缘中人 2014-10-04
  • 打赏
  • 举报
回复
终于试出来了
  private
    { Private declarations }
    FOldProc: TWndMethod;
    procedure MyProc(var message: TMessage);

create。。
  FOldProc := DBGrid1.WindowProc;
  DBGrid1.WindowProc := MyProc;


procedure TForm3.MyProc(var message: TMessage);
var
  curpos: integer;
  info: TScrollInfo;
begin
  if (message.Msg = WM_HSCROLL) then
  begin
    info.cbSize := SizeOf(TScrollInfo);
    info.fMask := SIF_ALL;
    GetScrollInfo(DBGrid1.Handle, SB_HORZ, info);
    if (info.nPos = 0) and (info.nTrackPos = 0) and (message.WParam = 3) then
      SendMessage(DBGrid1.Handle, WM_HSCROLL, SB_RIGHT, 0)
      // SetScrollPos(DBGrid1.Handle, SB_HORZ, info.nMax, True)
    else if (info.nPos = info.nMax) and (info.nTrackPos = 0) and (message.WParam = 2) then
      SendMessage(DBGrid1.Handle, WM_HSCROLL, SB_LEFT, 0);
    // SetScrollPos(DBGrid1.Handle, SB_HORZ, 0, True);
  end;
  FOldProc(message);
end;
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  DBGrid1.WindowProc := FOldProc;
end;
NongCunGongLu 2014-10-04
  • 打赏
  • 举报
回复
引用 1 楼 ksrsoft 的回复:
默认的滚动条效果不能满足吗?
默认滚动条要点击多次(或拖动)才能滚动到边,我想一点左箭头就到最左边,一点右箭头就到最右边。
NongCunGongLu 2014-10-04
  • 打赏
  • 举报
回复
引用 2 楼 ksrsoft 的回复:
是不是类似这样的效果

begin
  
end;
是的,但是我的意思是:点击箭头要多次才能向右翻页至右边;向左同样道理。怎样可以一点左右箭头(滚动条上的),就直接向左或向右到边?
缘中人 2014-10-04
  • 打赏
  • 举报
回复
是不是类似这样的效果
procedure TForm3.Button1Click(Sender: TObject);
begin
  SendMessage(DBGrid1.Handle, WM_HSCROLL, SB_LEFT, 0);

end;

procedure TForm3.Button2Click(Sender: TObject);
begin
  SendMessage(DBGrid1.Handle, WM_HSCROLL, SB_RIGHT, 0);
end;
缘中人 2014-10-04
  • 打赏
  • 举报
回复
默认的滚动条效果不能满足吗?
已经博主授权,源码转载自 https://pan.quark.cn/s/7b90c9d33475 苹果CMS作为一款适用于个人与企业网站的开源内容管理工具,因其卓越的功能完备性与操作便捷性而备受青睐,特别是在构建视频和音频平台时展现出优越性能。 "影音先锋"是一款享有盛誉的多媒体播放软件,能够兼容多种格式的音视频文件,并拥有高效的解码技术以及网络流媒体传输支持。 当将"影音先锋"整合为苹果CMS的播放器组件时,用户将享受到更为顺滑且音画质量更佳的在线视听服务。 在"苹果cms影音先锋播放器插件.rar"这个归档文件中,一般会包含以下几个核心构成部分: 1. **播放器模块**:这是一个针对苹果CMS进行优化的影音先锋播放器单元,可能涵盖JavaScript、CSS以及PHP等编程文件,旨在实现影音先锋播放器在网站中的部署和操控。 这些文件将负责与苹果CMS平台进行交互,处理播放指令,管理播放队列,以及呈现播放控制界面(例如播放、暂停、快进、后退、全屏切换等功能)。 2. **说明文档或部署手册**:可能附带有README文件或同类文档,详细阐述插件的部署和参数配置流程,包括如何在苹果CMS管理端激活插件,设定播放器特性,以及应对常见故障的方法。 3. **示范代码**:插件制作者有时会提供示范模板或代码样本,旨在辅助用户掌握如何在网站页面中调用播放器,以及如何与其它功能模块(如搜索、分类、评论等)进行融合。 4. **授权许可文件**:插件可能附带一份授权声明,明确规定了插件的使用范畴、修改权限和版权归属。 用户在应用插件前必须详尽阅读并遵循这些条款。 5. **升级或更新程序**:若插件存在新版迭代,开发者或许会提供一个自动或手动升级程序,使用户能够便捷地将旧版播放器插件更新至最...

5,943

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧