- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何找出 TGridPanel 内控件的位置(行和列索引)?我想对按钮数量使用常见的 OnClick 事件,并且需要知道按钮的 X、Y 位置。
我使用的是 Delphi 2007。
最佳答案
不幸的是,由于TGridPanel 的魔力,它比仅仅获取 Top 和 Left 属性要复杂一些......
这应该适用于任何控件,请根据您的需要进行调整:
procedure GetRowColumn(const AControl: TControl; var ARow, AColumn: Integer);
var
I: Integer;
begin
if AControl.Parent is TGridPanel then
begin
I := TGridPanel(AControl.Parent).ControlCollection.IndexOf(AControl);
if I > -1 then
begin
ARow := TGridPanel(AControl.Parent).ControlCollection[I].Row;
AColumn := TGridPanel(AControl.Parent).ControlCollection[I].Column;
end;
end;
end;
procedure TForm1.ButtonClick(Sender: TObject);
var
Row, Column : Integer;
begin
GetRowColumn(Sender as TControl, Row, Column);
// do something with Row and Column
ShowMessage( Format('row=%d - col=%d',[Row, Column]));
end;
关于delphi - 找出 TGridPanel 中控件的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1405106/
我有一个 16 x 4 的网格面板,如下所示: 有时我想隐藏一些行并将底行向上移动。当我将组件可见属性设置为 false 时,布局不会更新: 尽管如此,行大小类型设置为自动: 当没有任何内容可显示时,
我正在使用 TGridPanel 来保存一些面板。在设计时,我将网格面板设置为 1 行 5 列。 我可以使用此代码向网格添加一个面板,效果很好: procedure TForm6.AddPanelTo
在 Google 上进行了搜索,恐怕找不到答案。 这是我目前的情况: 我不想让这些复选框向左对齐,而是希望它们像这样居中(显然是经过照片处理的): 有人知道如何用 VCL 实现这一点吗?谢谢。 编辑:
我正在使用 TGridPanel 来管理多个面板。我创建面板并使用如下代码将它们添加到 GridPanel: var pnl: TPanel; begin pnl := TPanel.Crea
如何找出 TGridPanel 内控件的位置(行和列索引)?我想对按钮数量使用常见的 OnClick 事件,并且需要知道按钮的 X、Y 位置。 我使用的是 Delphi 2007。 最佳答案 不幸的是
我的表单上有一个 TGridPanel,并且希望向单击的特定“单元格”添加一个控件。 我很容易明白这一点: procedure TForm1.GridPanel1DblClick(Sender: TO
我正在尝试从代码创建一个带有 TGridPanel 的表单。 它包含: 顶部的备忘录(设置为 50%) 中心的导航器(设置为 24 像素) 底部的网格(设置为 50%) 这是我写的代码: uses
我需要使用以下结构: TGridPanel 内的 TGdridPanel 内的 TEdit 换句话说,存在一个 TGridPanel,并且在一个单元格中我需要插入其他 TGridPanel。 在此内部
我是一名优秀的程序员,十分优秀!