问题标签 [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.
delphi - GridPanel 在第一次调整大小时不调整
我有一个问题,即使我花了很长时间试图解决它,我也无法解决。
我通常使用 GridPanels 来对齐表单上的控件。但是,它有一个烦人的错误。当 GridPanel 对齐模式为 alClient 并且我最大化其父窗口时,GridPanel 会调整到该窗口的新大小,但是,放置在网格上的控件不会。它们保持在窗口调整大小之前的相同位置。它仅在第一个窗口最大化时发生。如果首先手动调整窗口大小,则一切正常。我认为网格会在第二个调整大小事件(??)之后调整其子控件。
如果遇到此错误,该怎么做才能使 GridPanel 正常工作?向它发送消息可能就足够了(但是什么消息?),我不知道。我尝试使用 Realign、Refresh 等,但它们没有帮助。
提前感谢您的帮助,
马吕斯。
delphi - 在 TGridPanel 中找出控件的位置
如何找出 TGridPanel 中控件的位置(行和列索引)?我想对按钮数量使用常见的 OnClick 事件,并且需要知道按钮的 X、Y 位置。
我正在使用德尔福 2007。
extjs - 如何在 extjs 中为 Ext.grid.GridPanel 附加 headerclick 事件?
你能告诉我如何将 headerclick 或 headerdblclick 事件附加到 Ext.grid.GridPanel 吗?
delphi - Delphi如何使用TGridPanel
我想用Delphi的2009 TGridPanel,但不明白如何正确使用。
例如,我想要一个有 4 列的 GridPanel,每列应该有 GripPanels 宽度的 25%。
所以我在表单上放了一个 GripPanel 并添加了 4 个 ColumnItems。我给列项 SizeStyle ssPercent,现在我尝试给每个 ColummItem 一个值 25(对象检查器)。但由于某些原因,对象检查器不接受值 25。它会自动更改为“23,8095238095238”之类的值。有人可以简单地解释一下如何使用这些组件吗?谢谢!
delphi - 在 TGridPanel 中单击单元格
我有TGridPanel
一个表单,并希望将控件添加到单击的特定“单元格”。
我可以很容易地理解这一点:
我可能不需要这if ControlAtPos(P) = nil then
条线,但我想确保我没有在已经有一个控件的单元格中插入一个控件。
那么...我使用什么代码来获取 InsCol 和 InsRow?我一直在上下TGridPanel
和TControlCollection
类代码,找不到任何可以从鼠标坐标给我列或行值的东西。它们似乎也不是除OnDblClick()
.
任何帮助将不胜感激。
编辑:将变量 Result 更改为 MyControl 以避免混淆。
delphi - Delphi TGridPanel - 动态隐藏一些行
我有像这样的 16 x 4 网格面板:
有时我想隐藏一些行并将底行向上移动。当我将组件可见属性设置为 false 时,布局不会更新:
然而,行大小类型设置为自动:
为什么在没有可显示的内容时组件不将行高设置为零?
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
放在主窗体上,就会出现问题。
这是德尔福问题吗?还是我做错了什么?
delphi - 在 TGridPanel 中获取单击控件的列索引
我正在使用 aTGridPanel
来容纳一些面板。在设计时,我将网格面板设置为 1 行 5 列。
我可以使用此代码将面板添加到网格中,效果很好:
我想要做的是TPanel
当我点击它时从网格中删除它(这就是为什么我在上面的代码中将点击处理程序设置为网格面板的处理程序)。
在那个点击处理程序中,我这样做了,这几乎可以工作:
使用参数 forUpdateControlColumn()
会导致网格中面板的顺序发生变化 - 第一个和第二个交换位置。
我可以通过将列索引添加到面板的标记属性来解决这个问题,然后将其传递给 UpdateControlColumn()。这样就可以了,但是一旦面板被移除,更高的标签号就不再有效 - 面板已经移动了列。
那么,如何从OnClick
处理程序中获取面板所在的列?
我正在使用 Delphi 10.1 Berlin - 如果这有什么不同的话。
为了测试这一点,我开始了一个新项目,添加了一个TGridPanel
,将其设置为 1 行和 5 个等宽的列。我添加了 6 个控件并使用以下代码为每个TButton
控件创建了一个处理程序:OnClick
单击几个按钮以添加一些面板,然后单击面板将其删除。
delphi - Delphi 2007 - 是否有在垂直方向工作的 THeaderControl
我需要调整 a 上的行大小TGridPanel
,并认为我可以通过THeaderControl
左对齐并在触发时调整 TGridPanel 行的大小OnSectionResize
以匹配标题控件中的部分宽度来做到这一点。
然而,与滚动条不同的是,THeaderControl 没有Kind
确定它是水平控制还是垂直控制的属性。有什么东西可以给我这个功能吗?