delphi - 如何在不编辑所有表单的情况下巧妙地在所有 FormCreate 事件中添加一行代码?
问题描述
我需要在我的应用程序的所有形式中调用一个初始化例程,它是一个 Intraweb 应用程序,所以实际上我会使用OnIWAppFormCreate
而不是OnFormCreate
,无论如何问题是一样的。
我有两种技术:
使用 Visual Form Inheritance:在这种情况下,我创建了一个 BaseForm,我在其中实现了 FormCreate 事件并从中继承所有表单
我添加了一个全局过程,并从所有表单中调用它
这两种技术都让我编辑每个表格。
有没有办法避免这种情况?
事实上,我需要做的是将相同的字符串添加到 TIWAppForm.ExtraHeader stringlist 属性。
这是我需要添加到每个表单的代码:
ExtraHeader.Add('<link rel="stylesheet" type="text/css" href="/css/mycustomcss.css">');
不知何故,我想知道是否有一种方法可以用我不知道的技术只编码一次。
谢谢。
解决方案
最好的解决方案是从基本表单继承,即使因为在几乎所有表单中我都编写了 OnFormCreate 代码,所以为了实现我的任务,我做了:
创建一个继承自的基本表单
TIWAppForm
在单元声明中,我从基本形式继承
在我替换的dfm
object
中inherited
inherited
在我明确调用的所有表单的 FormCreate 中
推荐阅读
- javascript - React-mde WYSIWYG 编辑器绝对链接
- algorithm - 练习面试问题并想知道如何处理这个又名算法
- c++ - 进程数量增加导致 MPI 性能损失
- python - Flask/Python 错误:运行 Flask 时尝试使用没有已知父包的相对导入
- javascript - 在zeromq(Nodejs)中为异步接收器实现停止功能
- c - 验证 CRC32 校验和
- javascript - React Hook useCallback在调用时没有得到更新的状态
- javascript - 如何使用 ReactJS 在浏览器中链接下载为 PDF
- php - react & axios & PHP [在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin。]
- yaml - 用新值替换 yq 的 Yaml 值作为 bash 函数的输出,该函数接受当前值作为输入