问题标签 [tgridpanel]

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 投票
5 回答
4698 浏览

delphi - GridPanel 在第一次调整大小时不调整

我有一个问题,即使我花了很长时间试图解决它,我也无法解决。

我通常使用 GridPanels 来对齐表单上的控件。但是,它有一个烦人的错误。当 GridPanel 对齐模式为 alClient 并且我最大化其父窗口时,GridPanel 会调整到该窗口的新大小,但是,放置在网格上的控件不会。它们保持在窗口调整大小之前的相同位置。它仅在第一个窗口最大化时发生。如果首先手动调整窗口大小,则一切正常。我认为网格会在第二个调整大小事件(??)之后调整其子控件。

如果遇到此错误,该怎么做才能使 GridPanel 正常工作?向它发送消息可能就足够了(但是什么消息?),我不知道。我尝试使用 Realign、Refresh 等,但它们没有帮助。

提前感谢您的帮助,

马吕斯。

0 投票
2 回答
2110 浏览

delphi - 在 TGridPanel 中找出控件的位置

如何找出 TGridPanel 中控件的位置(行和列索引)?我想对按钮数量使用常见的 OnClick 事件,并且需要知道按钮的 X、Y 位置。

我正在使用德尔福 2007。

0 投票
1 回答
3951 浏览

extjs - 如何在 extjs 中为 Ext.grid.GridPanel 附加 headerclick 事件?

你能告诉我如何将 headerclick 或 headerdblclick 事件附加到 Ext.grid.GridPanel 吗?

0 投票
2 回答
13302 浏览

delphi - Delphi如何使用TGridPanel

我想用Delphi的2009 TGridPanel,但不明白如何正确使用。

例如,我想要一个有 4 列的 GridPanel,每列应该有 GripPanels 宽度的 25%。

所以我在表单上放了一个 GripPanel 并添加了 4 个 ColumnItems。我给列项 SizeStyle ssPercent,现在我尝试给每个 ColummItem 一个值 25(对象检查器)。但由于某些原因,对象检查器不接受值 25。它会自动更改为“23,8095238095238”之类的值。有人可以简单地解释一下如何使用这些组件吗?谢谢!

0 投票
2 回答
1365 浏览

delphi - 在 TGridPanel 中单击单元格

我有TGridPanel一个表单,并希望将控件添加到单击的特定“单元格”。

我可以很容易地理解这一点:

我可能不需要这if ControlAtPos(P) = nil then条线,但我想确保我没有在已经有一个控件的单元格中插入一个控件。

那么...我使用什么代码来获取 InsCol 和 InsRow?我一直在上下TGridPanelTControlCollection类代码,找不到任何可以从鼠标坐标给我列或行值的东西。它们似乎也不是除OnDblClick().

任何帮助将不胜感激。

编辑:将变量 Result 更改为 MyControl 以避免混淆。

0 投票
2 回答
5424 浏览

delphi - Delphi TGridPanel - 动态隐藏一些行

我有像这样的 16 x 4 网格面板:

在此处输入图像描述

有时我想隐藏一些行并将底行向上移动。当我将组件可见属性设置为 false 时,布局不会更新:

在此处输入图像描述

然而,行大小类型设置为自动:

在此处输入图像描述

为什么在没有可显示的内容时组件不将行高设置为零?

0 投票
0 回答
323 浏览

delphi - XE2:TGridPanel 的问题

TGridPanel在 IDE 中创建了以下内容:

在此处输入图像描述

TGridPanel是在 a 内TPageControl:TTabSheet,在 a 上TFrame

在 IDE 的设计期间,一切都很好。

但是,当我放下TFrame空(主)表单然后点击编译按钮时,我在其中所做的所有ColumnSpan设置RowSpan都会TFrame在编译完成时重置。

当我然后运行应用程序时,我得到一个EGridPanelException说法:

读取错误...Panel_Setup_Content.ColumnCollection:无法删除包含控件的列

并且应用程序在点击“确定”后终止。

此外,当我关闭项目并重新打开它(TFrame在主窗体上放置)时,我得到完全相同的错误 +“忽略错误并继续?注意:忽略错误可能会导致组件被删除或属性值会迷路的。”

当我使用记事本从主窗体 DFM 中删除 TFrame 时,我可以再次打开项目以及 TFrame 文件,而不会出现错误消息或问题。

一旦我将其TFrame放在主窗体上,就会出现问题。

这是德尔福问题吗?还是我做错了什么?

0 投票
1 回答
707 浏览

delphi - 在 TGridPanel 中获取单击控件的列索引

我正在使用 aTGridPanel来容纳一些面板。在设计时,我将网格面板设置为 1 行 5 列。

我可以使用此代码将面板添加到网格中,效果很好:

我想要做的是TPanel当我点击它时从网格中删除它(这就是为什么我在上面的代码中将点击处理程序设置为网格面板的处理程序)。

在那个点击处理程序中,我这样做了,这几乎可以工作:

使用参数 forUpdateControlColumn()会导致网格中面板的顺序发生变化 - 第一个和第二个交换位置。

我可以通过将列索引添加到面板的标记属性来解决这个问题,然后将其传递给 UpdateControlColumn()。这样就可以了,但是一旦面板被移除,更高的标签号就不再有效 - 面板已经移动了列。

那么,如何从OnClick处理程序中获取面板所在的列?

我正在使用 Delphi 10.1 Berlin - 如果这有什么不同的话。

为了测试这一点,我开始了一个新项目,添加了一个TGridPanel,将其设置为 1 行和 5 个等宽的列。我添加了 6 个控件并使用以下代码为每个TButton控件创建了一个处理程序:OnClick

单击几个按钮以添加一些面板,然后单击面板将其删除。

0 投票
0 回答
78 浏览

delphi - Delphi 2007 - 是否有在垂直方向工作的 THeaderControl

我需要调整 a 上的行大小TGridPanel,并认为我可以通过THeaderControl左对齐并在触发时调整 TGridPanel 行的大小OnSectionResize以匹配标题控件中的部分宽度来做到这一点。

然而,与滚动条不同的是,THeaderControl 没有Kind确定它是水平控制还是垂直控制的属性。有什么东西可以给我这个功能吗?

0 投票
1 回答
669 浏览

delphi - 从代码添加到 TGridPanel 时,如何在两个百分比行之间有一个绝对行?

我正在尝试从代码中创建一个带有 TGridPanel 的表单。

它包含:

  • 顶部的备忘录(设置为 50%)
  • 中心的导航器(设置为 24 像素)
  • 底部的网格(设置为 50%)

这是我写的代码:

结果如下所示:

在此处输入图像描述

问题:表格底部有一个空隙,看不到数据库导航器!

DFM 的转储对我来说看起来不错:

当我改变位置时,导航器处于正确的位置,但我希望它是绝对的。

为什么TGridPanel在这种情况下表现得如此奇怪?我能做些什么呢?