Delphi的DBGrid是数据库相关应用程序中使用最广泛的DB感知组件之一。它的主要目的是使应用程序的用户能够在表格网格中操作数据集中的记录。
DBGrid组件的一个鲜为人知的特性是,可以将其设置为允许多行选择。这意味着用户可以从连接到网格的数据集中选择多个记录(行)。
要启用多重选择,只需在“选项”属性中将dgMultiSelect元素设置为“True”。当dgMultiSelect为“True”时,用户可以使用以下技术选择网格中的多行:
选定的行/记录表示为书签,并存储在网格的SelectedRows属性中。
请注意,SelectedRows仅在dgMultiSelect和dgRowSelect的选项属性都设置为“True”时才有用。另一方面,当使用dgRowSelect时(当无法选择单个单元格时),用户将无法直接通过网格和编辑记录,并且dgEditing将自动设置为“False”
SelectedRows属性是TBookmarkList类型的对象。我们可以使用SelectedRows属性,例如:
要将dgMultiSelect设置为“True”,可以在设计时使用对象检查器,也可以在运行时使用如下命令:
DBGrid1.Options:= DBGrid1.Options + [dgMultiSelect];使用dgMultiSelect的一个好情况可能是需要一个选项来选择随机记录,或者需要所选字段的值之和。
下面的示例使用ADO组件(AdoQuery连接到ADOConnection,DBGrid连接到AdoQuery over DataSource)在DBGrid组件中显示数据库表中的记录。
代码使用多项选择来获取“大小”字段中的值之和。如果要选择整个DBGrid,请使用以下示例代码:
procedure TForm1.btnDoSumClick(Sender: TObject);var i: Integer; sum : Single;beginif DBGrid1.SelectedRows.Count > 0 thenbegin sum := 0; with DBGrid1.DataSource.DataSet dobeginfor i := 0 to DBGrid1.SelectedRows.Count-1 dobegin GotoBookmark(Pointer(DBGrid1.SelectedRows.Items[i])); sum:= sum + AdoQuery1.FieldByName('Size').AsFloat; end; end; edSizeSum.Text := FloatToStr(sum); endend;在Delphi中定制DBGrid的输出有很多方法和理由。一种方法是添加复选框,使结果在视觉上更具吸引力。 默认情况下,如果数据集中有布尔字段,DBGrid会根据数据字段的值将其显示为“True”或“False”。但是,如果选择使用“true...
...供了在软件后台出现的许多功能。 例如,应用程序处理如何从程序菜单调用帮助文件。 DPROJ是Delphi项目文件的另一种文件格式,但它以XML格式存储项目设置。 pas文件 PAS文件格式保留用于Delphi单元源文件。您可以通过项目...
下面介绍如何在应用程序运行时使用鼠标拖动和调整控件大小(在Delphi窗体上)。 运行时的表单编辑器 在窗体上放置控件(可视组件)后,可以调整其位置、大小和其他设计时特性。但是,在某些情况下,您必须允许应用...
...会在DBGrid单元格中显示备注字段的内容。 本文提供了如何解决这个TMemoField问题的想法(还有一些技巧)。。。 特默菲尔德 备注字段用于表示长文本或文本与数字的组合。使用Delphi构建数据库应用程序时,TMemoField对象用于...
...以编辑DBGrid中的查找字段的说明。具体来说,我们将研究如何将DBLookupComboBox放置到DBGrid的单元格中。 这将调用来自数据源的信息,这些信息将用于填充下拉框。 要在DBGrid的单元格中显示DBLookupComboBox,首先需要在运行时使其...
下面介绍如何将下拉选择列表放置到DBGrid中。使用DBGrid列的PickList属性,为编辑DBGrid中的查找字段创建视觉上更具吸引力的用户界面。 现在,您已经知道什么是查找字段,以及在Delphi的DBGrid中显示查找字段的选项是什么,现...
...个值标识TDBNavigator对象上的不同按钮。现在,让我们看看如何破解DBNavigator: 增强型dbnavigator 首先,通过放置至少一个DBNavigator、一个DBGrid、一个DataSoure和一个您选择的Dataset对象(ADO、BDE、dbExpres等),设置一个简单的数据...
Delphi DBGrid是一个功能强大的组件,如果您正在开发数据感知应用程序,那么您可能每天都在使用它。下面,我们将了解如何向您的数据库应用程序中添加更多用户肯定会喜欢的功能。 按照《Delphi数据库编程初学者指南》中描...
...供了一个很棒的用户界面工具。 我们假设您已经知道如何将数据库连接到DBGrid组件。实现这一点的最简单方法是使用数据库表单向导。从DBDemos别名中选择employee.db,并选择除EmpNo以外的所有字段。 着色柱 要在视觉上增强用...