DBGrid控件如何控制其滚动条的滚动

「已注销」 2005-03-24 01:42:29
在程序里使用一个DBGrid控件连接数据库中的一个表,在运行时控件右侧有一个滚动条,但是每次用鼠标单击滚动条的向下按钮时,控件中的内容不是一条记录一条记录地向下走,而是先跳到下一页,然后再一条一条走,如何控制它能够正常浏览呢?
还有这个滚动条的宽度是否可以根据显示内容设置?如何设置?
...全文
179 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-03-24
  • 打赏
  • 举报
回复
多谢!我试试吧!:)
Libran 2005-03-24
  • 打赏
  • 举报
回复
要用API函数SetScrollInfo,由结构SCROLLINFO类型的参数的成员nMin、nMax和nPage共同决定。
具体查MSDN看看。
「已注销」 2005-03-24
  • 打赏
  • 举报
回复
OK, 基本解决,结贴!
constantine 2005-03-24
  • 打赏
  • 举报
回复
没有地方设置,这个如果要,那么应该只有重画了
「已注销」 2005-03-24
  • 打赏
  • 举报
回复
哦,我没说明白,就是滑块的高度呀,这个应该在哪里设置啊?
Libran 2005-03-24
  • 打赏
  • 举报
回复
说实话,还是没懂。。。

是整个垂直滚动条的高度?
——这个高度通常是和DBGrid的客户区的高度相一致的;

还只是滚动条中间的那个可以拖拽的划块的高度?
——这个应该由DBGrid可视范围内的记录数和总的记录数的比例,与整个垂直滚动条的高度共同来确定的。
「已注销」 2005-03-24
  • 打赏
  • 举报
回复
就是垂直滚动条的顶端到底端的长度,例如:
如果有100条记录,设置滚动条长为DBGrid高度的1/3,
如果有50条记录,设置滚动条长为DBGrid高度的1/2
Libran 2005-03-24
  • 打赏
  • 举报
回复
滚动条的宽度
——是什么??
Libran 2005-03-24
  • 打赏
  • 举报
回复
以Form1上的DBGrid1为例:
1,在.h里添加声明:
private: // User declarations
TWndMethod OldProc;
void __fastcall NewProc(TMessage &Message);

2,在Form构造函数或OnCreate事件里:
OldProc = DBGrid1->WindowProc;
DBGrid1->WindowProc = NewProc;

3,实现NewProc:
void __fastcall TForm1::NewProc(TMessage &Message)
{
if (Message.Msg == WM_VSCROLL)
{
if (Message.WParam == SB_LINEUP)
{
DBGrid1->DataSource->DataSet->Prior();
Message.Msg = 0;
}
if (Message.WParam == SB_LINEDOWN)
{
DBGrid1->DataSource->DataSet->Next();
Message.Msg = 0;
}
}
OldProc(Message);
}

4,在Form的OnClose里:
DBGrid1->WindowProc = OldProc;
「已注销」 2005-03-24
  • 打赏
  • 举报
回复
解决后在线给分!
作为ComponentOne Studio for .NET 和 ComponentOne Studio Enterprise的一部分,ComponentOne True DBGrid for .NET是我们受欢迎的ActiveX控件-True DBGrid Pro的.NET版本。它使用ADO.NET,最新的数据绑定技术,能完全管理数据库界面并提供强大灵活的浏览,编辑,添加和操作表格数据的能力。 True DBGrid Pro for ActiveX的爱好者会喜欢ComponentOne True DBGrid for .NET。因为它包含了您所依赖的特性:复合显示模式,具有独立或同步滚动的水平和垂直拆分,完全可定制网格界面(字体,颜色,图片和格式),增强键盘导航,健壮的打印选项以及其它更多特性! [特 性] ComponentOne True DBGrid for .NET具有您对我们畅销的ActiveX 控件True DBGrid Pro所期望的高级特性。以下是一个实例: 复合显示模式以最实用的格式表示数据:标准Outlook样式分组,可以动态的排序网格列;分层数据显示提供了增强的Master-Detail显示以及完全可编辑的下拉视图;窗体视图可在需要能修改的标准“窗体”中重新定位数据;反转视图可将行转换为列,从而提供方便的“向下读”方式。 Microsoft Word- 和Excel-类型模型定制网格的外观:字体,颜色,图片以及格式化规范。从列和行边框…到前景图片…到正文环绕。能非常简单的让网格显示出您需要的结果。 具有定制滚动的垂直和水平分割可以水平,垂直和两者同时分割网格!此外,您具有对滚动行为的控制:选择具有在每个分割中独立工作的滚动(对于需要从不同列的数据中对比字段值时非常有效)或选择一个滚动同步滚动复合分割。 2D和3D单元显示选择两维,三维和两者结合来控制单元外观符合您的要求。例如,您可能希望允许鼠标移动元素来获得一个3D外观。 Excel-类型单元格选项选择不但可以是任何行或列,而且可以是任何区域的单元。 丰富的滚动能力跟踪滚动的位置并且在滚动移动时给用户一个信息弹出框。 自动调整列尺寸(弹性模式)当网格水平尺寸调整时,通过适当改变列的尺寸保证您的数据可见。 增强键盘导航当用户按回车键时使用DirectionAfterEnter属性控制下一单元的相应位置。 FilterBar数据输入行实现定制用户操作,如增长搜索和记录集过滤。 标签属性可以向一个列附加任何类型的对象。 合并相邻单元从指定的列中合并相邻数据行到一个不可编辑单元,或独立显示所有单元属性。 AutoDropdown和 AutoCompletion属性 · 通过减少下拉选项所需按键次数来简化数据输入。 · 自动将网格单元转换为True DBDropDown值 · 连接一个TDBDropDown控件到一个包含值和描述的表上,该表的下拉选项将自动的将描述映射到该值上。 · 健壮的打印选项 · 控件打印具有完备的功能,如缩放,调整到窗体,停止分页以及打印预览。
一、常用控件简介在数据库开发实践中,有一些功能反复使用,如一些字段的值,常常就那几个,这时,要程序记住这些值可提高用户的工作效率,这类控件有两个TCmbrec和TDBCmbrec,分别继承TCombox和TDBCombox,重载DblClick和DoEnter过程,并加了Filename、Section、Field和Caption属性。其使用方法参见“三、控件的使用”的说明。对于某些数据表来说,字段数很多,打开浏览时,屏幕放不下,需要用横向滚动来移动查看,为了清楚浏览数据记录,希望在滚动过程中,某些字段不要移动;其二,如果数据表字段很少且比较规范,希望在数据表表格上编辑数据,编辑过程中每个字段都具有上述TDBCmbrec的功能;其三,对于综合查询或在一个画面上一个数据源对应于几个数据显示时,希望能够自动翻译其字段名。这些功能需求可使用TRxDBGrid和Tdbgrdrec控件来实现,都继承于TDBGrid控件,前者实现DBGrid的固定列显示、自动翻译和字段格编辑;后者实现字段格编辑。其中,TRxDBGrid增加了Filename、Section、Field、TranslateFileName、FixedCols等属性,重载DblClick和DoEnter等过程;Tdbgrdrec增加了Filename、Section、Field属性,重载DblClick和DoEnter过程。二、控件安装 上面介绍的控件,写在两个.pas文件中,DBCtrl.pas只包含TRxDBGrid控件DBAdvanceComponent.pas包括Tcmbrec、TDBCmbrec、Tdbgrdrec等控件。安装步骤为:·第一步,打开Delphi,然后选择“Component”|“Install Components”菜单项;·第二步,在“Install Component”对话框的“Unit file name”栏中,使用“Browse”按钮将控件文件加进来;·第三步,单击“OK”按钮;·第四步,在弹出的“Confirm”对话框中,单击“Yes”按钮,安装该控件文件;·第五步,在“Information”对话框,单击“OK”按钮;·重复第二至第五步,安装所有需要的控件。安装完成后,在控件面板上出现新的标签“DBAdvance”,上面有新安装的控件。之所以不写成包,是为了方便以后扩展和适应Delphi版本的更新。三、控件的使用1.Tcmbrec、TDBCmbrec和Tdbgrdrec控件 增加的保存内容放在当前目录下的“lst”子目录的Ini文件里,文件名为FileName属性的内容,新增属性Section让用户设置Init文件中“[ ]”段名,新增属性Field让用户设置数据表字段名。当然在Tdbgrdrec控件中,Field字段可不设置,控件自动根据当前选取的字段设置。子目录“lst”,控件可自动创建。2.TRxDBGrid控件 (1)FileName,Section,Field属性设置同上“1”; (2)FixedCols属性用来设置固定列数,从第一列到第FixedCols列; (3)TranslateFileName属性用来设置翻译文件名,放在“txt”子目录下,是文本文件,文件格式为:字段英文名@字段中文名。特别说明:TRxDBGrid控件来源于著名的Rxlib2.75相关的控件,本人加了字段自动翻译的功能,该功能在综合查询时特别有用。

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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