问题标签 [tdbgrid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
169 浏览

delphi - 如何获取 TDBGrid 列上最长条目的长度

我有一个名为 grMain 的 TDBGrid 组件。我需要知道在 grMain 上检索的 Column 最长条目的值的长度,以调整保存 grMain 的表单的最小宽度。

如何获取 TDBGrid 列上最长条目的长度?

提前致谢。

0 投票
4 回答
10645 浏览

delphi - 在运行时重新分配数据源

我做了一些搜索,只发现了更多未回答的问题。:)

使用 D5pro。

我想在运行时将 DataSource 重新分配给 TDBGrid。我有七个相同的结构化数据集,并且根据单击按钮,我希望在网格中显示适当的数据集。

我已经尝试了所有方法,但无法让它显示下一个 DataSet。它坚持在启动时分配的第一个。我开始过度使用方法,但仍然没有任何效果。这就是我现在的位置。

我哪里错了?

谢谢

0 投票
2 回答
75 浏览

database - TStatusBar 有什么问题?

我有两种形式,称为 fmMain 和 fmEmpl。两者的每个 TStatusBar 都称为 sbMain 和 sbEmpl。我有一个名为 dmData 的 TDataModule 来存储数据库组件。

我需要更新 sbEmpl 面板,以便在突出显示单元格网格时显示数据库中的实际值。我一直在尝试使用 TClientDataSet 的 OnAfterScroll 处理程序来处理此事件,但它仅适用于 fmMain,而不适用于 fmEmpl。如果我尝试更新 sbEmpl 面板,它总是会引发错误消息。这是消息:

然而,我在 dmData 上包含了两个标题 (.h)。

这里的 TStatusBar 出了什么问题?

任何的想法?

提前非常感谢。

编辑:好的,这是代码:

“访问冲突”消息在以下行引发:

0 投票
1 回答
384 浏览

delphi - 我需要一个 DBGrid OnAfterCellClick

我有三个 DBGrid 和三个表,其中两个与主字段链接并按预期工作。当用户点击 grid-1 时,它会在 grid-2 中显示三个项目。

当用户单击 grid-2 时,我想使用 Locate 来选择 grid-3 中的行

问题是在数据更改为适当的行之前触发了 grid-2 OnCellClick 事件。例如

在 OnCellClick 事件之后,网格似乎不会更改为 Row。

我需要一个 AfterCellClick 事件。

有人可以说明如何去做吗?

谢谢

0 投票
2 回答
6157 浏览

delphi - 将 TDbGrid 中的一些单元格设置为可编辑

我只想在 TDBGrid 中编辑一些单元格。在给定的列中,某些但不是所有单元格都是可编辑的,因此我不能只为整个列设置 Column.ReadOnly ,然后保持这种状态。

最好使用哪些事件,这样我就可以在输入单元格时进行控制。我可能会使用 TDbGrid.ColumnEnter 来捕捉水平移动,并使用 TDataSet.AfterScroll 来捕捉网格中的垂直移动。或者我也许可以使用 TDBGrid.DrawColumnCell (我已经用它来改变某些单元格的颜色......)

而且我也无法找出更改单元格只读状态的最佳方法。我可以设置底层的 TTable.Field.ReadOnly 或 TDbGrid.Columns[].ReadOnly。

我可以尝试以上所有方法,但是我依赖于我的测试来确定网格是如何实现的,并且可能会忽略某些情况。我想知道 VCL 是否提供了一种管理这种需求的方法,是否有警告等。

相关:Delphi 中的只读 TDBGrid/TwwDBGrid 单元格?,但不处理通过键盘滚动。

0 投票
2 回答
468 浏览

mysql - DBGrid - 如何将相邻两行中的列值之间的差异显示为另一列?

假设我每分钟左右记录一次汽车的纬度和经度,每次都在表格中添加一行。

我想要一个有 4 列的数据库网格

  1. 纬度
  2. 经度
  3. 自上次测量以来的距离
  4. 当前街道地址,如果知道的话

第 4 点,我可以尝试从 Google 地图中检索,但我得到一个文本或空白,所以让我们忽略它。

我如何获得#3?我应该在我的应用程序或 MySql 中计算它(使用存储过程还是只是一个复杂的 SELECT)?

无论哪个答案,有人可以提供一些示例代码或示例链接吗?Google 今天不是我的朋友 :-(

0 投票
1 回答
1023 浏览

mysql - 如何通过 dbgrid 更改 mysql 数据库的值?

嘿伙计们早上好,

我有一个 DBGrid 和 UniDac 组件。我使用弹出菜单并选择一行。我通过弹出菜单中的 onclick 事件在我的 TEdit 中用我的数据填写一个新表单。

现在的问题是,我想编辑从 dbgrid 中选择的数据。

这段代码一直有效,直到刷新 dbgrid,然后旧值又回到我的 dbgrid 中。我如何不仅为 dbgrid 也为 mysql 表更改它?

我的实际代码:

0 投票
1 回答
1139 浏览

delphi - DB 网格上的滚动条 - 寻求明确的方法

我看到很多 DB 滚动条问题,但似乎从未找到明确的答案。

没有选项(属性)可以单独或联合添加/隐藏 DB 网格滚动条。只需在需要时自动出现。

如果我没有足够的行来滚动,我希望我的列填满整个网格。

如果我这样设计,那么当在运行时添加垂直滚动条时,也会自动添加水平滚动条(因为我刚刚用垂直滚动条覆盖了最右侧列的右侧部分,我们现在需要一个水平滚动条酒吧看看我在报道什么)。

一种选择是设计我的网格,以便在右手尺寸(多少像素?)处有足够的空间来容纳垂直滚动,但这很不雅观,直到有足够的行来触发滚动条(如果有的话)。

在我看来,最美观的方式是从一个网格开始,该网格填充了 X 像素宽的列,并将其宽度增加到 X + width of vertical scroll bar(或将一个/一些网格列的宽度总共减小0 width of vertical scroll bar)添加新行时的像素会导致出现垂直滚动条。

我错过了什么吗?有没有“正确”的方式来做到这一点,或者行业标准的方式(我不是要“最好”的方式或任何过于主观的方式,所以请不要关闭。我相信很多人需要知道这一点)。

标准中有什么TDBgrid可以促进这一点吗?

奖励:我订阅了 TMS 组件,所以如果有一种方法可以简单地使用 来做到这一点TAdvDbgrid,那对我来说没问题,但是一个通用的解决方案TDBgrid就可以了。

非主观问题:鉴于
- 我不想增加我的宽度TDBgrid
- 并且我不想在没有垂直滚动条的情况下在右侧出现一个空白的白色列
- 并且我愿意减少我最右边的列,以避免出现垂直滚动条时出现水平滚动条
......我该怎么做?


[更新] Ken 获得了正确的答案,因为他的解决方案最适合大多数用户。

对于像我这样已经为 TMS 订阅付费的人,我只是注意到他们的TDbAdvgrid组件有一个 ScrollBars 属性,当我将它设置为 时ssVertical,它会执行我想要的操作。

现在,如果我只能找到一种固定标题行的好方法,当它是唯一的行时......

0 投票
1 回答
1241 浏览

delphi - Delphi DBGrid 条件 dbcombo

我有一个有两列的表。配置项和配置值。现在我想在 ConfigValue 应该是 dbcombobox 的 dbgrid 中填充它。

示例配置项(第一列)

产品

产品类别

物品种类

项目

ConfigValue 应该有一个 dbcombobox,并且应该根据第一列中的值填充组合框的项目。

例子。如果用户单击将产品作为配置项的第一行,则网格中同一行的 ConfigValue 列应包含带有产品列表的组合框。

可能我可以使用网格的 BeforeDrawCell 事件,但是我试图找到一种可以使用 adoquery 或数据集组件来处理的方法。

有人可以指导解决这个问题的方法。

提前致谢, Divyesh

0 投票
1 回答
33299 浏览

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

如何更改在delphi中的字段上具有相同值的dbgrid行的颜色?

例如具有相同教师的所有行

注意:这些行是分组的,并且在 dbgrid 中一个接一个

提前致谢