- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我将 DbGrid 放在 MDIChildForm 中时,我遇到了 DbGrid 焦点错误。
要重新处理该错误:
现在,运行应用程序,并按照以下步骤操作:
错误:
我正在使用Delphi 7。
有人可以帮我解决问题吗?
最佳答案
该问题是由 Form.ActiveControl 创建的。
在这种情况下,MDI 子级在获得编辑焦点后将 DBGrid 保留为事件控件,因此在单击 dbgrid 后不会调用 Windows.SetFocus。
我通过重写 TDBGrid.SetFocus 解决了问题:
type
TMyDBGrid = class(TDBGrid)
public
procedure SetFocus; override;
end;
procedure TMyDBGrid.SetFocus;
var
form: TCustomForm;
begin
inherited;
// BUG-FIX: force the SetFocus if the current Control is Self but not focused!
form := GetParentForm(Self);
if (form <> nil) and (form.ActiveControl = Self) and not Focused then
Windows.SetFocus(Self.Handle);
end;
关于delphi - MDI 上的 DBGrid 焦点错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21834687/
如何使所有网格在我的表单上看起来都相同?我想实现必须应用于项目的所有网格的备用行颜色。是否可以不为每个网格添加相同的 DrawColumnCell 事件代码?我想避免为每个网格添加相同的代码。我的项目
好的,我正在使用 DBGrid 来显示数据库中的数据。 数据库包含一个包含 11 列的表。第 4 列称为客户名称,包含客户的姓名。 我想要一个搜索框(类似于谷歌搜索栏),我可以在其中写下我想要的客户名
我从 TDBGrid 继承了一个类,我希望它能够记住特定用户对列顺序和列宽所做的任何修改。而且,我希望能够完全在网格本身内做到这一点。我不想将代码附加到 TDataSet,因为这个网格在我的应用程序中
好吧,我对 DBGrid 垂直滚动有疑问。当我用鼠标滚轮或垂直滚动条垂直滚动它时,它会上下移动选定的行。我想让它滚动的不是选定的行,而是整个网格。就像它在 Microsoft Excel 中工作一
我遇到了 Delphi 的 DBGrid 最奇怪的问题。 我注意到 有时 ,我的意思是,当我将行加载到 delphi DBGrid 中时(它是完全随机的),网格不显示数据。 相反,它显示了几个压缩行,
我有一个带有查询、数据集、可编辑 dbgrid 和 updatesql 组件的表单。当我需要保存在 dbgrid 中所做的更改时,我调用此过程: procedure TEditCardDetailFo
我在 BDS 2006 中使用了 DBGrid。它有 6 列,在运行时填充。在mysql数据库中,一列的数据类型是char(150)。因为从数据库检索到 dbgrid 时,它会占用长度,并且列会随着滚
我有一个条目网格,用户可以单击以对流程进行多项选择。根据第一个选定行的值,某些条目将无效。 我知道DBGrid.SelectedRows.CurrentRowSelected,但我找不到合适的地方来检
我得到了: ADOTable1(代码人为整数,姓名人为字符串) DataSource1(日期集是ADOTable1) DBGrid1(连接到DataSource1,Options-dgRowSelec
我想扩展 DbGrid 功能以在奇数行和偶数行上添加颜色。所以我写了这个 procedure TGridx.DrawCell(ACol, ARow: Longint; ARect: TRect; AS
我正在使用 Delphi 10.2.3 并且想要更改 DBgrid 的背景颜色。例如,我有一个文本列和一个整数列。根据文本,如果值非零,我想更改整数单元格(同一行中)的颜色。 我得到了一些想法 how
我需要获取 Delphi 中 DBGrid 的选定单元格的值。 我不知道该怎么做。我尝试了 dbGrid 的 OnMouseMove pt : TGridCoord; ... pt:=dbGrid.M
{*----------------------------------------------------------------------------- Unit Name: TopFormU
我的问题是如何在 Delphi 7 中的 dbgrid 中设置一个带有复选框项目的列。 提前致谢。 最佳答案 经我测试,最简单、最完整的方法如下: 在单元的私有(private)部分中,声明一个用于保
我正在制作一个保存订单和打印发票的应用程序。我的表单上有一些标签、编辑、tmemos、按钮、数据源、adotable、弹出菜单和 dbgrid。 当我构建程序并向下滚动 dbgrid 滚动条时,它会在
我有一个 TDBGrid。它有效,但显示的列非常大。 如何设置“自动修复列宽”? 最佳答案 所需的列宽取决于网格 Canvas 的设置和每个字段的显示文本的最大长度。 procedure FitGri
我需要格式化 DBGrid 中的值,以某种格式显示,例如 '#,##0.00'。知道如何做到这一点吗? 问候,彼得 最佳答案 您可以使用DisplayFormat要格式化的字段的属性。 检查此示例 T
是否可以在 Delphi (xe) 中自动换行 DBgrid 单元格(高度)?我有一个 dbgrid,其中包含具有固定列宽的多列,并且某些列最多有 100 个字符,我需要它们在不更改列宽的情况下适合适
有没有办法隐藏 DBGrid 上的标题行和指示器列?我找不到任何此类属性(property)。我可以通过编程来完成吗? 最佳答案 关闭(设置为 False)对象检查器中的 Options.dgTitl
使用 TImage 列表中的图像在 DBGrid 中的数据单元格上绘制字形时出现问题: 我将“复选标记”的 bmp 图像代替特定数据单元格中的文本“完成”。它有效,但细胞中未被图像覆盖的部分始终存在黑
我是一名优秀的程序员,十分优秀!