- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Delphi 中围绕 TWebBrowser 构建了一个包装器。包装器旨在将多个 Web 浏览器(边缘 Chrome 、 Chrome 等)实现到单个包装器中,该包装器自动检测要使用的浏览器。
完成类(class)后,我将所述类(class)转换为 VCL 组件并将其加载到设计时包中。我的组件只包含两个文件,包装器本身和一个实用程序类。当我将组件从工具选项板拖到 VCL 表单上时,包装器和实用程序类不会自动添加到项目中。这意味着我必须手动将包装器和实用程序都包含到项目中。
我希望有一种方法可以在将包装器添加到表单时自动将这两个文件包含到项目中。我想我以前在我使用过的其他第三方组件中看到过这一点,但我的内存可能让我失望。
如果这是可以完成的事情,我的假设是它将位于 VCL 组件的寄存器部分。
procedure Register;
begin
RegisterComponents('My Wrappers', [TWebBrowserWrapper]);
end;
因为这是我认为在设计时运行的代码。
最佳答案
让您的设计时包实现一个继承自 TSelectionEditor
的类并覆盖其虚拟 RequiresUnits()
方法,然后使用 RegisterSelectionEditor()
为您的组件注册该类.这样,每当您在设计时将组件放置到 Form/Frame/DataModule Designer 上时,您从 RequiresUnits()
报告的任何其他单元。将自动添加到该单位的 uses
保存单位时的条款。
例如:
uses
..., DesignIntf;
type
TWebBrowserWrapperSelectionEditor = class(TSelectionEditor)
public
procedure RequiresUnits(Proc: TGetStrProc); override;
end;
procedure TWebBrowserWrapperSelectionEditor.RequiresUnits(Proc: TGetStrProc);
begin
inherited RequiresUnits(Proc);
// call Proc() for each additional unit you want added...
Proc('MyWrapperUnit');
Proc('MyUtilityUnit');
end;
procedure Register;
begin
RegisterComponents('My Wrappers', [TWebBrowserWrapper]);
RegisterSelectionEditor(TWebBrowserWrapper, TWebBrowserWrapperSelectionEditor);
end;
关于delphi - 将 Delphi VCL 设计时包放入表单时如何自动包含文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63493462/
我是一名德国学生。对于我必须做一个物理或化学项目的学校,我决定在树莓派上安装 tensorflow 来训练对象检测模式。 但是有一个我不明白的错误。 '包'ffmpeg'没有安装候选者。' 我试图从源
我正在尝试使用 R 中 RCurl 包的 getURL 函数从 API 中抓取页面上的数据。我的问题是,当我在 Chrome 中打开 URL 时,我无法复制得到的响应本质上,当我在 Chrome 中打
这个问题在这里已经有了答案: The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
我正在使用: emacs 24.3.1 软呢帽 20 jdk1.7.0_45 我已经使用 emacs 创建了一个 Java 项目并具有以下项目和类路径文件: .项目 snaprequest
我是一名优秀的程序员,十分优秀!