首页 > 解决方案 > 如何在不编辑所有表单的情况下巧妙地在所有 FormCreate 事件中添加一行代码?

问题描述

我需要在我的应用程序的所有形式中调用一个初始化例程,它是一个 Intraweb 应用程序,所以实际上我会使用OnIWAppFormCreate而不是OnFormCreate,无论如何问题是一样的。

我有两种技术:

  1. 使用 Visual Form Inheritance:在这种情况下,我创建了一个 BaseForm,我在其中实现了 FormCreate 事件并从中继承所有表单

  2. 我添加了一个全局过程,并从所有表单中调用它

这两种技术都让我编辑每个表格。

有没有办法避免这种情况?

事实上,我需要做的是将相同的字符串添加到 TIWAppForm.ExtraHeader stringlist 属性。

这是我需要添加到每个表单的代码:

ExtraHeader.Add('<link rel="stylesheet" type="text/css" href="/css/mycustomcss.css">');

不知何故,我想知道是否有一种方法可以用我不知道的技术只编码一次。

谢谢。

标签: delphidelphi-10-seattle

解决方案


最好的解决方案是从基本表单继承,即使因为在几乎所有表单中我都编写了 OnFormCreate 代码,所以为了实现我的任务,我做了:

  1. 创建一个继承自的基本表单TIWAppForm

  2. 在单元声明中,我从基本形式继承

  3. 在我替换的dfmobjectinherited

  4. inherited在我明确调用的所有表单的 FormCreate 中


推荐阅读