如何创建一个像Tpanel一样的TCustomControl?

时间:2010-07-19 05:56:44

标签: delphi custom-component tpanel tcustomcontrol

如何创建一个像Tpanel一样的TCustomControl?例如MyCustomComponent,我可以删除类似标签,图像等组件。

1 个答案:

答案 0 :(得分:7)

技巧是TCustomPanel中的这段代码:

constructor TCustomPanel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  ControlStyle := [csAcceptsControls {, ... } ];
//...
end;

您可以从csAcceptsControls属性中ControlStyle下载更多VCL控件。

如果你想在自己的控件中执行此操作,但不要从这样的VCL控件中执行此操作,那么您应该执行以下操作:

  1. 覆盖Create构造函数
  2. csAcceptsControls添加到ControlStyle媒体资源
  3. 像这个示例代码:

    //MMWIN:MEMBERSCOPY
    unit _MM_Copy_Buffer_;
    
    interface
    
    type
      TMyCustomControl = class(TSomeControl)
      public
        constructor Create(AOwner: TComponent); override;
      end;
    
    
    implementation
    
    { TMyCustomControl }
    
    constructor TMyCustomControl.Create(AOwner: TComponent);
    begin
      inherited Create(AOwner);
      ControlStyle := ControlStyle + [csAcceptsControls {, ...} ];
    //...
    end;
    
    
    end.
    

    - 的Jeroen