社区
C++ Builder
帖子详情
DBGrid控件如何控制其滚动条的滚动
「已注销」
2005-03-24 01:42:29
在程序里使用一个DBGrid控件连接数据库中的一个表,在运行时控件右侧有一个滚动条,但是每次用鼠标单击滚动条的向下按钮时,控件中的内容不是一条记录一条记录地向下走,而是先跳到下一页,然后再一条一条走,如何控制它能够正常浏览呢?
还有这个滚动条的宽度是否可以根据显示内容设置?如何设置?
...全文
179
10
打赏
收藏
DBGrid控件如何控制其滚动条的滚动
在程序里使用一个DBGrid控件连接数据库中的一个表,在运行时控件右侧有一个滚动条,但是每次用鼠标单击滚动条的向下按钮时,控件中的内容不是一条记录一条记录地向下走,而是先跳到下一页,然后再一条一条走,如何控制它能够正常浏览呢? 还有这个滚动条的宽度是否可以根据显示内容设置?如何设置?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
解决后在线给分!
Delphi美化
DB
Grid
控件
表头、格线及颜色等,纯Delphi代码
内容索引:Delphi源码,数据库应用,
DB
Grid
纯Delphi代码实现美化
DB
Grid
,不少朋友都会发现,
DB
Grid
缺省的外观样式实在有些单调或缺少创意,用在自己的软件中,美观性实在不敢恭维,但是不用又不行,必竟
DB
Grid
是Delphi中最为普遍的数据显示
控件
。那么解决问题的方法是我们自己动手美化
DB
Grid
,改变表头、网格、格线前景色和背景色,以及字体大小等,其实也很简单,相信你看了本代码后就会明白其中的原理了。
DB
GRID
的应用范例
在用vc开发关于数据库的项目时,通常我们只好用微软的
DB
GRID
作为数据库表格
控件
,其实微软的
DB
GRID
并不好用,想找一份好的帮助文档都找不到,并且界面并不友好,比起C++Builder中的
DB
GRID
来说是逊色不少,但是
DB
GRID
在开发数据库的项目中又是常用的
控件
,所以就一直想找一个好用的
DB
GRID
,可是网上又没有找到。上次在无意中看到了C
Grid
Ctrl(一个很漂亮的表格
控件
,如果你还没有用过,可以到http://www.codetools.com/miscctrl/
grid
ctrl.asp/下载,上面还有详细的使用说明)支持虚模式,在这种模式下,即使你向这个表格插入一百万条数据,它并不会真的生成一百万行,而是随着你的
滚动
条
的
滚动
,计算出在屏幕上要显示的行和列,然后会向你提供一个接口,通过这个接口,你可以在这儿设置你要显示的数据。这给了我一些启示,我决定用它来做一个
DB
GRID
。下面的例子是它的一个应用。
Delphi为String
Grid
控件
增加Combobox下拉框.rar
Delphi为String
Grid
网格显示
控件
中增加下拉框功能,也就是在
Grid
控件
中添加Combobox下拉列表的功能,在任意列显示一个ComboBox功能,如演示截图所示,可大大扩展
Grid
的功能。生成列表: with Sender as TComboBox do begin hide; if itemindex >= 0 then with String
Grid
1 do Cells[col, row] := Items[itemindex]; end;
True
DB
Grid
for .NET-基于.NET的企业版网格
控件
作为ComponentOne Studio for .NET 和 ComponentOne Studio Enterprise的一部分,ComponentOne True
DB
Grid
for .NET是我们受欢迎的ActiveX
控件
-True
DB
Grid
Pro的.NET版本。它使用ADO.NET,最新的数据绑定技术,能完全管理数据库界面并提供强大灵活的浏览,编辑,添加和操作表格数据的能力。 True
DB
Grid
Pro for ActiveX的爱好者会喜欢ComponentOne True
DB
Grid
for .NET。因为它包含了您所依赖的特性:复合显示模式,具有独立或同步
滚动
的水平和垂直拆分,完全可定制网格界面(字体,颜色,图片和格式),增强键盘导航,健壮的打印选项以及其它更多特性! [特 性] ComponentOne True
DB
Grid
for .NET具有您对我们畅销的ActiveX
控件
True
DB
Grid
Pro所期望的高级特性。以下是一个实例: 复合显示模式以最实用的格式表示数据:标准Outlook样式分组,可以动态的排序网格列;分层数据显示提供了增强的Master-Detail显示以及完全可编辑的下拉视图;窗体视图可在需要能修改的标准“窗体”中重新定位数据;反转视图可将行转换为列,从而提供方便的“向下读”方式。 Microsoft Word- 和Excel-类型模型定制网格的外观:字体,颜色,图片以及格式化规范。从列和行边框…到前景图片…到正文环绕。能非常简单的让网格显示出您需要的结果。 具有定制
滚动
条
的垂直和水平分割可以水平,垂直和两者同时分割网格!此外,您具有对
滚动
行为的
控制
:选择具有在每个分割中独立工作的
滚动
条
(对于需要从不同列的数据中对比字段值时非常有效)或选择一个
滚动
条
同步
滚动
复合分割。 2D和3D单元显示选择两维,三维和两者结合来
控制
单元外观符合您的要求。例如,您可能希望允许鼠标移动元素来获得一个3D外观。 Excel-类型单元格选项选择不但可以是任何行或列,而且可以是任何区域的单元。 丰富的
滚动
能力跟踪
滚动
条
的位置并且在
滚动
条
移动时给用户一个信息弹出框。 自动调整列尺寸(弹性模式)当网格水平尺寸调整时,通过适当改变列的尺寸保证您的数据可见。 增强键盘导航当用户按回车键时使用DirectionAfterEnter属性
控制
下一单元的相应位置。 FilterBar数据输入行实现定制用户操作,如增长搜索和记录集过滤。 标签属性可以向一个列附加任何类型的对象。 合并相邻单元从指定的列中合并相邻数据行到一个不可编辑单元,或独立显示所有单元属性。 AutoDropdown和 AutoCompletion属性 · 通过减少下拉选项所需按键次数来简化数据输入。 · 自动将网格单元转换为True
DB
DropDown值 · 连接一个T
DB
DropDown
控件
到一个包含值和描述的表上,该表的下拉选项将自动的将描述映射到该值上。 · 健壮的打印选项 ·
控件
打印具有完备的功能,如缩放,调整到窗体,停止分页以及打印预览。
常用数据库
控件
的安装与使用方法
一、常用
控件
简介在数据库开发实践中,有一些功能反复使用,如一些字段的值,常常就那几个,这时,要程序记住这些值可提高用户的工作效率,这类
控件
有两个TCmbrec和T
DB
Cmbrec,分别继承TCombox和T
DB
Combox,重载
Db
lClick和DoEnter过程,并加了Filename、Section、Field和Caption属性。其使用方法参见“三、
控件
的使用”的说明。对于某些数据表来说,字段数很多,打开浏览时,屏幕放不下,需要用横向
滚动
条
来移动查看,为了清楚浏览数据记录,希望在
滚动
过程中,某些字段不要移动;其二,如果数据表字段很少且比较规范,希望在数据表表格上编辑数据,编辑过程中每个字段都具有上述T
DB
Cmbrec的功能;其三,对于综合查询或在一个画面上一个数据源对应于几个数据显示时,希望能够自动翻译其字段名。这些功能需求可使用TRx
DB
Grid
和T
db
grdrec
控件
来实现,都继承于T
DB
Grid
控件
,前者实现
DB
Grid
的固定列显示、自动翻译和字段格编辑;后者实现字段格编辑。其中,TRx
DB
Grid
增加了Filename、Section、Field、TranslateFileName、FixedCols等属性,重载
Db
lClick和DoEnter等过程;T
db
grdrec增加了Filename、Section、Field属性,重载
Db
lClick和DoEnter过程。二、
控件
安装 上面介绍的
控件
,写在两个.pas文件中,
DB
Ctrl.pas只包含TRx
DB
Grid
控件
;
DB
AdvanceComponent.pas包括Tcmbrec、T
DB
Cmbrec、T
db
grdrec等
控件
。安装步骤为:·第一步,打开Delphi,然后选择“Component”|“Install Components”菜单项;·第二步,在“Install Component”对话框的“Unit file name”栏中,使用“Browse”按钮将
控件
文件加进来;·第三步,单击“OK”按钮;·第四步,在弹出的“Confirm”对话框中,单击“Yes”按钮,安装该
控件
文件;·第五步,在“Information”对话框,单击“OK”按钮;·重复第二至第五步,安装所有需要的
控件
。安装完成后,在
控件
面板上出现新的标签“
DB
Advance”,上面有新安装的
控件
。之所以不写成包,是为了方便以后扩展和适应Delphi版本的更新。三、
控件
的使用1.Tcmbrec、T
DB
Cmbrec和T
db
grdrec
控件
增加的保存内容放在当前目录下的“lst”子目录的Ini文件里,文件名为FileName属性的内容,新增属性Section让用户设置Init文件中“[ ]”段名,新增属性Field让用户设置数据表字段名。当然在T
db
grdrec
控件
中,Field字段可不设置,
控件
自动根据当前选取的字段设置。子目录“lst”,
控件
可自动创建。2.TRx
DB
Grid
控件
(1)FileName,Section,Field属性设置同上“1”; (2)FixedCols属性用来设置固定列数,从第一列到第FixedCols列; (3)TranslateFileName属性用来设置翻译文件名,放在“txt”子目录下,是文本文件,文件格式为:字段英文名@字段中文名。特别说明:TRx
DB
Grid
控件
来源于著名的Rxlib2.75相关的
控件
,本人加了字段自动翻译的功能,该功能在综合查询时特别有用。
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章