如何创建可放置在form上、支持Object Inspector配置的无图标non-visual组件
实现无设计时占位图的非可视组件方案
核心逻辑
你提到的
TFloatAnimation不会在Form设计界面显示图标,核心是它关闭了设计期的可视占位属性,你可以通过以下步骤实现相同效果,同时保留拖拽放置、Object Inspector参数配置的能力:
具体实现步骤
- 基类选择:如果是从零开发组件,直接继承
TComponent即可;如果是改造现有TTimer组件,直接继承TTimer创建子类即可 - 重写构造函数,添加设计期不可见配置,示例代码如下:
constructor TCustomTimer.Create(AOwner: TComponent); begin inherited Create(AOwner); // *关键配置*:隐藏设计期窗体上的组件图标 SetDesignVisible(False); // 非可视组件通用配置:运行期默认不可见 Visible := False; end;
- 组件注册:按常规方式注册组件即可,不需要额外配置设计器:
procedure Register; begin RegisterComponents('自定义组件分类', [TCustomTimer]); end;
注意事项
- 该配置同时兼容VCL和FMX两套框架,不需要额外修改其他逻辑即可生效
- 原有组件的所有功能、属性配置能力完全保留,不会受到影响
内容的提问来源于stack exchange,提问作者zeus
相关产品推荐
相关产品推荐

