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

如何在TFrame创建时执行代码?(Delphi 11.3 FMX环境)

在Delphi 11.3 FMX中实现TFrame创建时执行代码的方法

FMX框架下的TFrame确实没有VCL里的OnCreate事件,要在Frame创建时执行代码,最直接可靠的方式是重写Frame的构造函数,具体操作如下:

  • 打开你的Frame单元,在类声明中添加构造函数的override声明
  • 在实现部分重写Create方法,在调用inherited之后写入自定义代码

示例代码:

type
  TMyCustomFrame = class(TFrame)
    // 这里是你Frame上的控件声明
  private
    { 私有成员 }
  public
    constructor Create(AOwner: TComponent); override;
  end;

implementation

{$R *.fmx}

constructor TMyCustomFrame.Create(AOwner: TComponent);
begin
  inherited; // 必须先调用父类构造函数,保证Frame基础结构初始化完成
  // 在这里编写你需要在Frame创建时执行的代码
  // 比如初始化变量、加载配置、创建动态控件等
  Log.d('TMyCustomFrame 已完成创建');
end;

关键说明

  • 这个构造函数会在Frame被实例化的瞬间执行:不管是通过代码手动TMyCustomFrame.Create(Owner)创建,还是设计时拖到窗体上、运行时由父窗体自动创建,都会触发这段代码
  • 执行时机早于Frame的OnShow、OnActivate等显示相关事件,也早于父窗体OnCreate的后续逻辑(若Frame是父窗体的子控件,父窗体创建时会优先实例化Frame)

内容的提问来源于stack exchange,提问作者Gorhin Stroebel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 21:22:05