dbgrid相关内容

Delphi - 恢复 DBGrid 中的实际行

D6 教授 以前我们使用 DBISAM 和 DBISAMTable.它处理 RecNo,并且可以很好地进行修改(删除、编辑等). 现在我们用不处理 RecNo 的 ElevateDB 替换,而且很多时候我们使用查询,而不是表. 查询必须重新打开才能看到修改. 但是如果我们重新打开查询,我们需要重新定位到最后一条记录.仅定位是不够的,因为 Grid 将其显示在另一行中.这是一 ..
发布时间:2022-01-21 12:53:08 其他开发

有没有好的免费/便宜的 Delphi 网格控件?

近十年前,我放弃了 Delphi 的 DBGrid,因为它根本就不好.从那以后,我使用了 Virtual TreeView,它提供了很多价值,但也存在一些问题.就像当前的开发状态(例如无)以及没有好的数据绑定版本的事实.DevExpress 的 QuantumGrid 以丰富的功能集而闻名,但确实非常昂贵.我认为它庞大的功能集对于 95% 的数据绑定网格控件的一般用例来说可能是多余的. 有谁 ..
发布时间:2022-01-18 10:12:51 其他开发

Delphi DBGrid 格式显示值

我需要对 DBGrid 中的值进行格式化,以便以某种格式显示,例如 '#,##0.00'.知道该怎么做吗? 问候,彼得 解决方案 DataSet 中的每个字段都有两个事件:OnGetText 和 OnSetText.使用所需字段的事件 OnGetText 并使用 Format 函数使用掩码格式化值. ..
发布时间:2022-01-15 11:01:58 其他开发

如何在Delphi中使用滚动条找到网格组件的实际宽度

我有一个网格组件 (DBGrid),上面有很多列.由于列数较多,因此创建了滚动条,因此网格的某些部分仍然隐藏.我需要找出DBGrid的实际宽度是多少,包括由于滚动条而未显示的部分.但是 Width 属性只给出了组件本身的宽度.有人有什么想法吗? 解决方案 也许这可能会有所帮助.它是 TDBGrid 的类助手的一部分,它自动调整最后一列的大小,以便网格没有空白空间.应该很容易根据您的需要进行 ..
发布时间:2021-12-30 13:05:26 其他开发

调整列宽 DBGrid

我有一个 TDBGrid.它有效,但显示的列非常大. 如何设置“自动修复列宽"? 解决方案 所需的列宽取决于网格画布的设置和每个字段的显示文本的最大长度. procedure FitGrid(Grid: TDBGrid);常量C_Add=3;无功ds:TDataSet;bm:TBookmark;i:整数;w:整数;a:整数数组;开始ds := Grid.DataSource.Dat ..
发布时间:2021-12-13 23:49:25 其他开发

DBGrid-如何设置单独的背景色?

我正在使用Delphi 10.2.3,并且想要更改DBgrid的背景颜色.例如,我有一个文本列和一个整数列.如果值不为零,我想根据文本更改整数单元格(在同一行中)的颜色. 我从中得到了一些想法如何为DBGrid特殊单元着色?所以我知道如何在OnDrawColumnCell中更改单元格的颜色.我可以更改文本的背景.但是我仍然不知道如何更改另一个单元格的颜色.当然,这很容易,而且我对明显的事物视 ..
发布时间:2021-04-23 18:59:50 其他开发

在Delphi中,如何更改TDBGrid中网格线的颜色?

我正在Delphi应用程序中使用TDBGrid组件,当我更改行颜色时,网格线变得不清楚或几乎不可见. 那么,任何人都可以向我们展示如何更改网格线的颜色吗? 我的意思是:如何更改单元格边框的颜色(请参见下图) 细胞边界 解决方案 您在寻找 过程TForm1.DBGrid1DrawColumnCell(Sender:TObject; const [Ref] Rect:TRe ..
发布时间:2021-04-23 18:58:11 其他开发

Delphi-使用DBGrid从搜索中选择行

我已使用查询搜索数据库。 搜索结果显示在DBGrid组件中,供用户选择希望继续的行。 DBGrid始终将记录指针设置为结果集中的第一条记录,因此默认情况下始终“选择”一行。我需要将此行为更改为在首次显示数据时不选择任何行,以便可以确定用户是否实际进行了选择。 是否可以告诉是否没有选择,即用户没有选择任何行? 任何帮助都非常欢迎! 解决方案 您可以包括dgMultiS ..
发布时间:2020-06-11 18:37:03 其他开发

在Shift + DBGrid中单击选择多个行

我需要编写代码以在Shift + MouseClick上选择多个行,以便能够填写这些值。有什么办法可以做到吗?我的DBGrid选项如下: dbGrid1.Options = [dgEditing,dgAlwaysShowEditor,dgTitles,dgColLines,dgRowLines,dgTabs,dgConfirmDelete, dgCancelOnExit,dgMultiSe ..
发布时间:2020-06-11 18:36:59 其他开发

删除并刷新您在DBgrid中保持相同位置的记录

我有一个小型数据库,正在使用dbgo,我有一个显示记录的DBgrid,我需要知道如何删除一条记录并刷新数据库,其中索引箭头保持相同的位置,或者至少转到下一个?但是目前,每次刷新时,我的索引箭头都会从头开始跳! 解决方案 只需保留并重置Recno var I:整数; ....... I:= Ads.Recno; Ads.Delete; Ads.Recno:= ..
发布时间:2020-06-11 18:36:56 其他开发

Tlistview-是否有任何类似Tlistview的组件但具有数据库访问权限?

我一直在尝试做出创造性的事情来避免 dbgrids ,而且我发现了 Tlistview (使用 alphaskins , tslistview 中的一个),似乎是一个不错的方法! 问题是,我不想在每个 tlistview onclick $ c>根据我在 tlistview 上选择的项目放置记录/数据集,我用 tlistview项目的标题 ..进行操作,可能会有同名的记录 这里是其中之 ..
发布时间:2020-06-11 18:36:54 其他开发

DBGrid停止当前行移动

使用d5,TDBGrid,SQLite3和ZEOS.数据库有2000个项目,一个列是布尔值的"Active",第二个列是文本的"ItemName",而IndexFiledNames是"ItemName" OnDblclick会切换“活动"打开/关闭,并且所有操作均可针对数据进行.有效更改从True更改为False,然后再次更改. 但是,如果我双击DBGrid的最后一个可见行,以切换到活 ..
发布时间:2020-06-11 18:36:52 其他开发

DBGrid中的“我的时间”字段显示的是日期和时间,而不是仅显示时间-Delphi

我的数据库中有一个名为“时间”的字段,它是日期/时间格式,其格式设置为“短时间”。在我的数据库中,日期不显示,也不据我所知被添加到数据库中。它只是时间值。我的DBGrid显示带有时间值和日期“ 12/30/1899”的时间字段。如何清除时间字段中的日期。 这是我用来提交到数据库的代码。 获取时间值: bookingtimes:= timeof(dttime.Time); ..
发布时间:2020-06-11 18:36:50 其他开发

如何从TDBGrid拖放?

如果将DragMode设置为dmAutomatic,则会阻止我选择行。 如果我使用OnCellClick调用BeginDrag,则只会在鼠标向上拖动时触发,这在我看来并没有拖动。 如果我使用OnMouseDown,它只会在标题行上触发。 我应该怎么做? 解决方案 重载MouseDown将导致所需的结果。 type TDBGrid = Class(DBGrids.TDB ..
发布时间:2020-06-11 18:36:48 其他开发

在delphi中更改字段值的DBGRID行颜色

如何更改在delphi中某个字段上具有相同值的dbgrid行的颜色? 例如所有具有相同教师的行 注意:这些行被分组,并且在dbgrid中排在后面 预先感谢 解决方案 您可以使用DBGrids onDrawColumnCell事件轻松实现此目的: 程序TForm1.DBGrid1DrawColumnCell(Sender:TObject; const Rect:TRe ..
发布时间:2020-06-11 18:36:45 其他开发

如何为DBGrid特殊单元着色?

我有一列只有“ yes”和“ no”值。 我想要的是,如果列值是“ yes”,那么只有该单元格的背景色是红色的 否则是“ no”,那么背景色是黄色的 ,但是此代码将整个行着色: 如果ADOTable1.FieldByName('Clubs')。AsString ='yes',则 开始 DBGrid1.Canvas.Brush。颜色:= clRed; DBGrid1.Default ..
发布时间:2020-06-11 18:36:43 其他开发

如何在TDBGrid中设置活动单元格?

我想通过代码激活 TDBGrid 中的单元格。 “激活”是指就像用户在单元格中单击一样,准备编辑单元格内容。我该怎么做? 编辑:这可能涉及两个步骤:更改当前活动的单元格,然后进入编辑模式。 解决方案 如果您是说“激活当前活动单元格的编辑模式” ,那么您可能应该这样做: MyDBGrid.EditorMode:= True; 激活特定单元格可以通过 Selec ..
发布时间:2020-06-11 18:36:40 其他开发

使用ADO具有预读功能的DBGrid

我正在使用ADO连接到SQL Server 2005。 我的TADODataSet选择了100万条记录。使用TDBGrid并将 TADODataSet.CursorLocation 设置为 clUseServer 即可。但是TDBGrid令人窒息! 我该如何选择100万条记录,避免分页,并且仍然能够在网格中显示记录,而无需将所有记录提取到客户端, SQL企业管理器可以执行查询并异 ..
发布时间:2020-06-02 19:11:41 其他开发