如何在不编辑所有表单的情况下巧妙地在所有 FormCreate 事件中添加一行代码?
How to smartly add a line of code in all the FormCreate events without editing all forms?
我需要在我的应用程序的所有形式中调用初始化例程,它是一个 Intraweb 应用程序所以实际上我将使用 OnIWAppFormCreate
而不是 OnFormCreate
,无论如何问题是一样的.
我想到了 2 个技巧:
使用可视表单继承:在本例中,我创建了一个 BaseForm,在其中实现了 FormCreate 事件,并从中继承了所有表单
我添加了一个全局过程并从所有窗体调用它
这两种技术都让我编辑每个表单。
有没有办法避免这种情况?
事实上,我需要做的是将相同的字符串添加到 TIWAppForm.ExtraHeader 字符串列表 属性。
这是我需要添加到每个表单的代码:
ExtraHeader.Add('<link rel="stylesheet" type="text/css" href="/css/mycustomcss.css">');
不知何故,我想知道是否有一种方法可以用我不知道的技术只编写一次代码。
谢谢。
最好的解决方案是从基本表单继承,即使在我几乎所有的表单中我都编写了 OnFormCreate 来实现我所做的任务:
创建一个继承自 TIWAppForm
的基本表单
在单元声明中我继承自基本形式
在 dfm 中我将 object
替换为 inherited
在我显式调用 inherited
的所有表单的 FormCreate 中
我需要在我的应用程序的所有形式中调用初始化例程,它是一个 Intraweb 应用程序所以实际上我将使用 OnIWAppFormCreate
而不是 OnFormCreate
,无论如何问题是一样的.
我想到了 2 个技巧:
使用可视表单继承:在本例中,我创建了一个 BaseForm,在其中实现了 FormCreate 事件,并从中继承了所有表单
我添加了一个全局过程并从所有窗体调用它
这两种技术都让我编辑每个表单。
有没有办法避免这种情况?
事实上,我需要做的是将相同的字符串添加到 TIWAppForm.ExtraHeader 字符串列表 属性。
这是我需要添加到每个表单的代码:
ExtraHeader.Add('<link rel="stylesheet" type="text/css" href="/css/mycustomcss.css">');
不知何故,我想知道是否有一种方法可以用我不知道的技术只编写一次代码。
谢谢。
最好的解决方案是从基本表单继承,即使在我几乎所有的表单中我都编写了 OnFormCreate 来实现我所做的任务:
创建一个继承自
TIWAppForm
的基本表单
在单元声明中我继承自基本形式
在 dfm 中我将
object
替换为inherited
在我显式调用
inherited
的所有表单的 FormCreate 中