我有TGridPanel
一个表单,并希望将控件添加到单击的特定“单元格”。
我可以很容易地理解这一点:
procedure TForm1.GridPanel1DblClick(Sender: TObject);
var
P : TPoint;
InsCol, InsRow : Integer;
begin
P := (Sender as TGridPanel).ScreenToClient(Mouse.CursorPos);
if (Sender as TGridPanel).ControlAtPos(P) = nil then
begin
InsCol := ???;
InsRow := ???;
(Sender as TGridPanel).ControlCollection.AddControl(MyControl, InsCol, InsRow)
end;
end;
我可能不需要这if ControlAtPos(P) = nil then
条线,但我想确保我没有在已经有一个控件的单元格中插入一个控件。
那么...我使用什么代码来获取 InsCol 和 InsRow?我一直在上下TGridPanel
和TControlCollection
类代码,找不到任何可以从鼠标坐标给我列或行值的东西。它们似乎也不是除OnDblClick()
.
任何帮助将不胜感激。
编辑:将变量 Result 更改为 MyControl 以避免混淆。