我有自己的控制权,来自TCustomPanel
。它上面有一个孩子(TEdit
)。
type
TMyControl = class(TCustomPanel)
private
FEditor: TEdit;
public
constructor Create(AOwner: TComponent);
destructor Destroy(); override;
end;
constructor TMyControl.Create(AOwner: TComponent);
begin
FEditor := TEdit.Create(nil);
FEditor.Parent := Self;
end;
destructor TMyControl.Destroy();
begin
FEditor.Free();
end;
当我在设计时单击子控件时,它充当运行时TEdit
,捕获焦点。
如何在设计时完全禁用子控件?
我希望他们停止回答鼠标/键盘消息。当我在设计时点击它们时,我希望选择并拖动父控件。
答案 0 :(得分:6)
使用Self
作为编辑构造函数中的所有者,制作面板的编辑子组件,并让面板处理其销毁。并调用SetSubComponent
函数,并为每个子组件将IsSubComponent
参数设置为True,以将您的面板控件视为结构窗格中的一个。
constructor TMyControl.Create(AOwner: TComponent);
begin
...
FEditor := TEdit.Create(Self);
FEditor.SetSubComponent(True);
FEditor.Parent := Self;
...
end;