gpt4 book ai didi

delphi - 如何正确定义TCustomFrame的子类?

转载 作者:行者123 更新时间:2023-12-02 17:59:08 25 4
gpt4 key购买 nike

我正在尝试定义 TCustomFrame 的子类,但在 TabOrder 属性上出现错误。

这些是我遵循的步骤:

  1. 向表单添加新的 TFrame 后代(右键单击项目,添加新的其他框架)。 enter image description here
  2. 将父类从 TFrame 切换到 TCustomFrame。

    TMyFrame = 类(TCustomFrame)

  3. 检查 TFrame 定义并发布完全相同的属性(这样做,TMyFrame 应该与 TFrame 相同,对吧?)。

  4. 保存并关闭。
  5. 打开定义了 TMyFrame 的单元。

出现错误,指出 TabOrder 属性不存在。 enter image description here

有人可以澄清我所做的事情有什么问题以及如何正确创建 TCustomFrame 的子类吗?

最佳答案

您似乎有点过于复杂了,我不确定您为什么认为需要第 2 步。

以下内容对我来说效果很好:

  1. 从没有打开项目的情况开始,创建一个新框架,在其上粘贴一两个组件(我只使用了 TListBox),将其重命名为 MyFrame 并保存。

  2. 右键单击框架,从上下文菜单中选择“添加到调色板”,完成随后的对话框以指定它应出现在哪个调色板页面上,然后再次保存。默认情况下,它会将其称为“MyFrameTemplate”之类的名称。

  3. 执行“关闭全部”,然后开始一个新项目。导航到您在步骤 2 中指定的调色板页面,并将 TMyFrame 的实例添加到表单,就像添加任何其他组件一样。系统将提示您将框架的单位添加到您的项目中。这就是您需要做的全部。鳍。

上述方法至少可以追溯到 D7 和西雅图。

如果您重命名框架的 DFM 文件,然后尝试重新打开使用它的项目,IDE 将提示它无法打开 DFM,然后无法找到类 TMyFrame 并询问是否它应该从您的表格中删除。因此,框架的使用取决于其 DFM 的存在,并且由于框架上组件的属性已经流式传输到其 DFM 中,因此很难看出如何阻止它们以使用框架的形式进行更改,因为您需要击败通常的 Steam 机制。也许有人知道一种巧妙的方法来做到这一点,但在我看来,如果您想做的话,TFrame 是一个值得开始的地方。

顺便说一句,如果您想防止评论中提到的内容被更改,我个人会将其作为一个新的复合组件,使用 GExpert 的“组件到代码”为其构造函数生成代码。

关于delphi - 如何正确定义TCustomFrame的子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40544494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com