You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在运行时使用IOTAComponent实现类设计时使用模式

运行时使用 IOTAComponent 的实现方法

前置说明

IOTAComponent 是 Delphi/C++ Builder 开放工具 API(OTA)中面向设计时场景的专属接口,原生仅可在 IDE 设计期环境下被调用。要在运行时复刻设计时的使用模式,仅能在 IDE 插件的运行上下文内实现,独立运行的普通应用无法直接调用该接口。

具体操作步骤

  • 首先引入 ToolsAPI 单元,通过全局变量 BorlandIDEServices 查询获取 IOTAComponentFactory 实例,这是运行时操作 IOTAComponent 的核心入口:
    var
      OtaCompFactory: IOTAComponentFactory;
    begin
      // 校验当前环境是否支持 OTA 服务
      if not Supports(BorlandIDEServices, IOTAComponentFactory, OtaCompFactory) then
        Exit;
      // 后续操作
    end;
    
  • 运行时创建组件的逻辑和设计时完全一致,调用 CreateComponent 方法传入父容器、组件类、位置尺寸参数即可:
    OtaComponent := OtaCompFactory.CreateComponent(ParentOtaComp, TEdit.ClassName, 20, 20, 150, 24);
  • 组件属性读写可直接调用 IOTAComponent 自带的 GetPropValue/SetPropValue 方法,无需额外引入 RTTI 单元适配,和设计时操作逻辑完全相同:
    OtaComponent.SetPropValue('Text', '运行时生成的输入框');
  • 组件创建完成后需要调用 RootComponent 方法挂载到当前窗体的根组件节点,即可和设计时生成的组件保持完全一致的生命周期、持久化逻辑:
    OtaCompFactory.RootComponent(OtaComponent, FormRootOtaComp);

注意事项

  • 所有操作必须在 IDE 插件的执行上下文内完成,脱离 IDE 的独立程序无法获取 OTA 服务实例,无法使用该接口
  • 若需要将运行时生成的组件持久化到窗体文件(dfm/fmx),额外调用 IOTAFormEditor.Save 方法即可,和设计时自动保存的效果一致
  • 如需监听组件属性变更事件,直接调用 IOTAComponent.AddPropertyChangeListener 绑定回调即可,无需额外适配事件机制

内容的提问来源于stack exchange,提问作者Alexandre Sousa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:06:00