delphi - TFrame 子级需要 OnCreate 事件

标签 delphi delphi-7

我在 Delphi 7 中遇到框架和继承问题。

假设我使用 visible=false 定义一个框架(在设计时)。 现在,我将此框架嵌入到某个表单中,并在表单内的框架的嵌入实例上设置 visible=true (也在设计时)。

现在假设我想根据设计时设置的可见属性来初始化嵌入框架。问题是简单地覆盖框架的构造函数不起作用,因为在构造函数内部我总是得到 visible=false (我猜是因为 DFM 属性尚未被读取)。我也不想将初始化代码放在Form单元中,因为这个逻辑只属于Frame。

处理此类案件的最佳经验法则是什么?

澄清 Frame.Visible 只是一个示例。该问题与在设计时设置的框架或其内部组件的所有其他属性相关。例如,假设我们正在讨论框架内 TEdit 的颜色。

最佳答案

您不能在构造函数中编写属性敏感代码,因为正如您所指出的,在构造函数运行时不一定会读取 DFM 属性。相反,重写框架类的 Loaded 方法并将代码放在那里。从 DFM 加载属性后调用它。

请注意,Visible 不适用于该技术,但其他属性可以。

关于delphi - TFrame 子级需要 OnCreate 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13788418/

相关文章:

delphi - 如何立即发送邮件而不提示确认对话框

德尔菲减法错误?如何解决这个问题?

delphi - 我需要将 "inherited"行添加到记录构造函数中吗?

Delphi 7自定义ImageList问题

Delphi 7 和 EMF+ 文件

delphi - 如何在Delphi 7中为某些代码添加书签?

delphi - 我是否应该转向 Indy 9?

json - Delphi 创建 JSON

delphi - 远景: Can an EXE bypass user confirmation while invoking another EXE?

添加后 delphi TCollection 计数不增加