Lazarus pascal / Delphi - 儿童表格不可编辑

时间:2012-11-02 13:06:59

标签: forms delphi parent-child lazarus

我正在创建一个表单的新实例,并尝试将其显示为来自PANEL的子项。但这种形式似乎并不可用。我的意思是我无法编辑任何文本框。但是还有其他控件,例如似乎可点击的树和按钮。

以下是代码:

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;,该表单是可编辑的,但它不在父表单/ Panel中。

同时设置父级时,子表单不活动(查看标题栏)

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

1 个答案:

答案 0 :(得分:0)

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

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

戴夫彼得斯 DP软件