专业编程基础技术教程

网站首页 > 基础教程 正文

「10.Delphi数据库编程」12.数据控制组件之DBGrid组件

ccvgpt 2025-02-04 13:03:00 基础教程 2 ℃

12.数据控制组件之DBGrid组件

数据集组件使应用程序与数据库之间建立了联系,同时应用程序还需要将数据库中的数据提供给用户,以便用户可以对数据库中的数据进行编辑和浏览。数据控制组件就是用于显示和编辑数据表中的数据,因此也称为数据浏览组件或数据感知组件。

组件面板中 Data Controls 中间的组件就是数据控制组件。如下图:

「10.Delphi数据库编程」12.数据控制组件之DBGrid组件

本节主要介绍 TDBGrid 组件。该组件以网格的方式显示数据表中的数据,同时可以对数据进行编辑修改。是 Delphi 中功能强大的数据控制组件。它显示从 DataSource 中获取的数据。可以直接在组件上编辑、新增、删除数据。

  • 按下回车键可以在当前记录前插入一个空白记录
  • 按下 Ctrl + Del 键可以删除当前记录

12.1 DBGrid 组件的主要属性

  • DataSource

该属性指定数据源组件,数据控制组件是从数据源组件中读取数据的。

  • Columns

该属性用来设置 DBGrid 组件中的列。也就是说,该属性用于指定位置 DBGrid 组件中的列和 DataSource 属性指定的数据集组件中字段的对应关系。Columns 中列的属性:

列属性

含义

Alignment

用于指定列中内容的对齐方式,取值: taLeftJustify - 左对齐 taCenter - 居中对齐 taRightJustify - 右对齐

ButtonStyle

用于设置列中内容显示按钮的样式,取值: cbsAuto - 组合框 cbsEllipsis - 省略号按钮,单击时触发 OnEditButtonClick 事件 cbsNone - 无按钮

Color

设置背景颜色

DropDownRows

当使用组合框时,该属性决定下拉列表下拉的行数

Expanded

如果列对象对应的字段是什么 ADT 或数组字段,该属性用于控制是否展开

FieldName

设定列对应的数据表中的字段名

PickList

设置组合框在下拉列表用于选择的内容

Title

设置别的标题

ReadOnly

是否只读

Width

列的宽度,默认为 Field 的 DisplayWidth

Font

列中内容的显示字体

  • FixedColor

指定 DBGrid 的边框颜色

  • Enabled

该属性决定 DBGrid 是否可接受来自鼠标、键盘、定时器事件的信息

  • Options

该属性配置 DBGrid 显示数据的方式。属性取值如下:

取值

含义

dgEditing

该属性为 True 表示用户可以在 DBGrid 中文编辑数据,如果同时选择了 dgRowSelect,该属性值被忽略

dgAlwaysShowEditor

该属性设置为 True,表示 DBGrid 一直处于编辑状态,不需要单击单元格后按回车才进入编辑状态。该属性只有在 dgEditing 为 True 时才有效

dgTitles

显示列标题

dgIndicator

显示当前记录的标示符

dgColumnResize

决定在运行时列宽是否可调节

dgColLines

在列之间是否显示表格线

dgRowLines

在行李之间是否显示表格线

dgTabs

用户是否可以使用 Tab 键和 Shift + Tab 键在单元格之间跳转

dgRowSelect

在运行时是否可用选择整行数据

dgConfirmDelete

如果删除记录,则是否弹出对话框进行确认

dgAlwaysShowSelection

是否一直显示选中的内容

dgCancelOnExit

在退出程序时,DBGrid 是否取消新增但没有输入数据的记录

dgMutilSelect

是否可以同时选择多行

  • TitleFont

设置网格中标题的字体

  • DragMode

该属性用于设置是否可以用鼠标改变列在网格中的显示顺序和位置。取值如下:

  • dmManual - 可以
  • dmAutomatic - 不可以
  • DefaultDrawing

该属性值用于控制网格中单元格的绘制方式。,默认值为 True,如果设置为 False,则必须实现 DBGrid 组件的OnDrawDataCell 事件来编写相应的程序用于绘制各网格单元格和其中的数据。

12.2 DBGrid 组件的主要事件

  • OnColEntor

当用户进入网格各列时触发该事件

  • OnColExit

当用户离开网格各列时触发该事件

  • OnDblClick

当用户在网格中双击鼠标左键时触发该事件

  • OnDragDrop

当用户在网格中放下一个拖动的对象时触发该事件

  • OnDragOver

当用户拖动一个对象到组件上时触发该事件

  • OnDrawDataCell

用于绘制网格中单元格并填充数据时触发的事件

  • OnEndDrag

当用户停止拖放时触发该事件

  • OnEnter

当网格获得焦点时触发该事件

  • OnExit

当网格失去焦点时触发该事件

  • OnKeyDown

当用户在网格中按下任何键或组合键时触发该事件

  • OnKeyPress

当用户在网格中按数字键或字母键时触发该事件

  • OnKeyUp

当用户在网格中释放任何按下的键时触发该事件

12.3 DBGrid Columns 的使用

1.新建一个 VCL Form Application

2.在窗体上放置一个 ADOConnection 组件,设置:

ConnectionString:Provider=MSDASQL.1;Persist Security Info=False;Data Source=demodb
LoginPrompt:False
Connected:True

3.在窗体上放置一个 ADODataSet 组件,设置:

Connection:ADOConnection1
CommandType:cmdTable
CommandText:d_students
Active:True

4.在窗体上放置一个 DataSource 组件,设置:

DataSet:ADODataSet1

5.在窗体上放置一个 DBGrid 组件,设置:

DataSource:DataSource1
Align:alClient

界面设计如下图所示:

6.在 DBGrid 组件上右击选择 “Columns Editor”,弹出 Columns 编辑器,如下图所示:

7.在 Cloumns 编辑器上右击,选择“Add all fields”,将数据集中的所有字段都添加到编辑器中,(操作方法与数据集中的字段编辑器相同,参见《5.数据集组件中的字段》),如下图所示:

8.在 Columns 编辑器中,可以保留显示的字段,也可以删除不需要显示的字段,单击某个字段后,可以设置其属性,现在,我们单击每个字段并设置其 Title 属性中的 Caption,分别将各个字段的标题设置为学号、姓名、性别、语文、数学、英语。如下图所示:

9.运行程序,如下图所示:

Tags:

最近发表
标签列表