0

我正在创建一个表单的新实例,并试图从面板上将其显示为一个孩子。但表格似乎不可用。我的意思是我不能编辑任何文本框。但是还有其他控件,例如看起来可以点击的树和按钮。

这是代码:

procedure TForm1.ProcfrmSetupItemCategories;
var
  NewForm: TfrmSetupItemCategories;
begin
  NewForm:=TfrmSetupItemCategories.Create(BodyPanel);

  NewForm.Parent := BodyPanel;
  NewForm.Top:=5;
  NewForm.Left:=5;
  NewForm.Show;
end;

但是,如果我删除该行NewForm.Parent := BodyPanel;,表单是可编辑的,但它会超出父表单/面板。

同样,当设置了父级时,子窗体不活动(查看标题栏)

我错过了什么吗?请指教。谢谢!

4

1 回答 1

0

表单需要是其他表单或 TApplication 的子级。TPanel 不知道如何管理表单,因此您的表单将不会被激活并且其组件将不会获得焦点。

相反,您可以使用普通表格并编写一个程序来对齐您的表格。现在在主窗体中添加一个计时器,并从 ontimer 事件中调用对齐过程。当用户移动或调整主窗体的大小时,其他窗体会重新对齐。

戴夫·彼得斯 DP 软件

于 2012-11-03T15:31:29.057 回答