如何将下拉选择列表放置到dbgrid中(place a drop down pick list into a dbgrid)

下面介绍如何将下拉选择列表放置到DBGrid中。使用DBGrid列的PickList属性,为编辑DBGrid中的查找字段创建视觉上更具吸引力的用户界面。...

下面介绍如何将下拉选择列表放置到DBGrid中。使用DBGrid列的PickList属性,为编辑DBGrid中的查找字段创建视觉上更具吸引力的用户界面。

Close up of hand using checklist on digital tablet

现在,您已经知道什么是查找字段,以及在Delphi的DBGrid中显示查找字段的选项是什么,现在是时候了解如何使用DGBrid列的PickList属性,使用户能够从下拉列表框中为查找字段选择值了。

关于dbgrid columns属性的快速信息

DBGrid控件具有Columns属性—表示网格控件中所有列的TColumn对象的集合。可以在设计时通过列编辑器设置列,也可以在运行时以编程方式设置列。当您想要定义列的显示方式、列中数据的显示方式以及在运行时访问TDBGridColumns的属性、事件和方法时,通常会向DBGird添加列。自定义网格使您能够配置多个列以显示同一数据集的不同视图(例如,不同的列顺序、不同的字段选择以及不同的列颜色和字体)。

现在,网格中的每一列都“链接”到网格中显示的数据集中的字段。此外,每列都有一个PickList属性。PickList属性列出用户可以为列的链接字段值选择的值。

填写挑选名单

您将在这里学到的是如何在运行时用另一个数据集的值填充该字符串列表。回想一下,我们正在编辑Articles表,并且Subject字段只能接受Subjects表中的值:PickList的理想情况!

下面介绍如何设置PickList属性。首先,我们在表单的OnCreate事件处理程序中添加对SetupGridPickList过程的调用。

procedure TForm1.FormCreate(Sender: TObject);begin SetupGridPickList('Subject', 'SELECT Name FROM Subjects');end;

创建SetupGridPickList过程的最简单方法是转到表单声明的私有部分,在那里添加声明,然后点击CTRL+SHIFT+C组合键-Delphi的代码完成将完成其余操作:

...type TForm1 = class(TForm)... privateprocedure SetupGridPickList( const FieldName : string; const sql : string); public...

注意:SetupGridPickList过程采用两个参数。第一个参数,FieldName,是我们想要充当查找字段的字段的名称;第二个参数SQL是我们用来用可能的值填充选取列表的SQL表达式——通常,SQL表达式应该返回一个只有一个字段的数据集。

下面是SetupGridPickList的外观:

procedure TForm1.SetupGridPickList(const FieldName, sql: string);var slPickList:TStringList; Query : TADOQuery; i : integer;begin slPickList:=TStringList.Create; Query := TADOQuery.Create(self); try Query.Connection := ADOConnection1; Query.SQL.Text := sql; Query.Open; //Fill the string listwhile not Query.EOF dobegin slPickList.Add(Query.Fields[0].AsString); Query.Next; end; //while //place the list it the correct columnfor i:=0 to DBGrid1.Columns.Count-1 do if DBGrid1.Columns[i].FieldName = FieldName thenbegin DBGrid1.Columns[i].PickList:=slPickList; Break; end; finally slPickList.Free; Query.Free; end; end; (*SetupGridPickList*)

就这样。现在,当您单击“主题”列时(进入编辑模式)。

注1:默认情况下,下拉列表显示7个值。您可以通过设置DropDownRows属性来更改此列表的长度。

注意2:没有任何东西可以阻止您从不是来自数据库表的值列表中填充选取列表。例如,如果有一个字段只接受工作日名称(“星期一”、“星期日”),则可以构建一个“硬编码”的选择列表。

“嗯,我需要点击选择列表4次…”

请注意,如果要编辑显示下拉列表的字段,则需要单击单元格4次,以便从列表中实际拾取值。添加到DBGrid的OnCellClick事件处理程序中的下一个代码片段模拟了按F2键,然后按Alt+向下箭头键。

procedure TForm1.DBGrid1CellClick(Column: TColumn);begin//Making the drop-down pick list appear fasterif Column.PickList.Count > 0 thenbegin keybd_event(VK_F2,0,0,0); keybd_event(VK_F2,0,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0,0,0); keybd_event(VK_DOWN,0,0,0); keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0); keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0); end;end;

  • 发表于 2021-09-10 22:19
  • 阅读 ( 199 )
  • 分类:编程

你可能感兴趣的文章

如何在chromebook上截图

Chromebook被设计成非常简单的机器,但是你知道吗,它们有一系列你意想不到的功能?使用这些快捷方式,在桌面上截取任何内容的屏幕截图都是轻而易举的事,您甚至可以选择一个小部分,以防您想在您选择的照片编辑器中减...

  • 发布于 2021-04-10 08:36
  • 阅读 ( 184 )

如何用microsoftword创建可填充表单

...首先需要启用“开发人员”选项卡,方法是单击“文件”下拉菜单,然后选择“选项”。打开“自定义功能区”选项卡,然后选择“自定义功能区”下的“主选项卡”选项 现在您需要选择“开发人员”框并按“确定” 完成此...

  • 发布于 2021-04-11 03:46
  • 阅读 ( 167 )

如何用调整曲线增强黑白照片

上周我们向您展示了如何将彩色照片转换为黑白照片。虽然我们与您分享的技巧和窍门产生了惊人的效果,但本周我们将再次强调一些强大的技术,以将您的图像提升到下一个层次。 我为什么要这么做? 如果你是一个新的逆...

  • 发布于 2021-04-11 20:37
  • 阅读 ( 354 )

如何在googledocs中创建一个drop cap

... Docs文档转换为microsoftoffice格式,然后就可以了。 相关:如何将googledocs文档转换为microsoftoffice格式

  • 发布于 2021-04-14 16:32
  • 阅读 ( 104 )

剪切粘贴(cut paste)和复制粘贴(copy paste)的区别

...任务。 方法1 突出显示必要的内容。 单击鼠标右键。 从下拉列表中,选择“剪切”选项。然后该内容从文档中消失。 转到所需位置。这可以在同一个文档中,也可以在不同的文档中。 放置光标。 再次单击鼠标右键。 从下拉...

  • 发布于 2021-06-30 17:10
  • 阅读 ( 958 )

本周最受欢迎的帖子

...ging loudly about not having access to the Google Wave preview, Santa GOOG dropped me an invite. Last night I held a Wave Q&A on Twitter; here are the results, complete with screenshots.Mac4Lin Gives Linux Desktops the Complete Mac Look Linux: Mac4Lin, a package of skins, wallpapers, ic***, and ...

  • 发布于 2021-07-28 23:29
  • 阅读 ( 179 )

如何折叠床笠

从Target.com,提供正确折叠床笠的完整指南。Hold the sheet inside out, by its two adjacent corners on one of the shorter ends. Position your hands inside each of these two corners.Fold the corner in your right hand over to the corner in your left, enveloping it. With your right hand, p...

  • 发布于 2021-08-03 05:24
  • 阅读 ( 171 )

如何在dbgrid中使用复选框(use checkboxes in a dbgrid)

在Delphi中定制DBGrid的输出有很多方法和理由。一种方法是添加复选框,使结果在视觉上更具吸引力。 默认情况下,如果数据集中有布尔字段,DBGrid会根据数据字段的值将其显示为“True”或“False”。但是,如果选择使用“true...

  • 发布于 2021-09-04 07:22
  • 阅读 ( 153 )

在delphi的tdbgrid中显示和编辑备注字段

...会在DBGrid单元格中显示备注字段的内容。 本文提供了如何解决这个TMemoField问题的想法(还有一些技巧)。。。 特默菲尔德 备注字段用于表示长文本或文本与数字的组合。使用Delphi构建数据库应用程序时,TMemoField对象用于...

  • 发布于 2021-09-10 20:47
  • 阅读 ( 163 )

在dbgrid中创建下拉列表

...以编辑DBGrid中的查找字段的说明。具体来说,我们将研究如何将DBLookupComboBox放置到DBGrid的单元格中。 这将调用来自数据源的信息,这些信息将用于填充下拉框。 要在DBGrid的单元格中显示DBLookupComboBox,首先需要在运行时使其...

  • 发布于 2021-09-10 22:15
  • 阅读 ( 146 )
YAN2394017333
YAN2394017333

0 篇文章

相关推荐