gpt4 book ai didi

delphi - 当组件添加到窗体时,Delphi 单元如何自动添加?

转载 作者:行者123 更新时间:2023-12-03 14:46:37 25 4
gpt4 key购买 nike

如果我添加 TXMLDocument从 IDE 转换为表单时,单位 Xml.XMLDoc, Xml.xmldom, Xml.XMLIntf, Xml.Win.msxmldom自动添加(在保存/编译时),IDE 如何知道添加这些单元。我明白为什么/如何XMLDoc添加了(它包含 TXMLDocument ),但是其他的呢?

此外,如果我将 DOMVendor 从 MSXML 更改为 ADOM XML v4,Xml.adomxmldom自动添加(在下一次编译时)。此时我可以删除 Xml.Win.msxmldom而不会自动添加回来。 IDE 如何根据组件属性知道这一点?

我问这个问题有两个原因,首先是好奇,其次是我正在清理大量单位(数百个)的使用部分。该项目使用 DevExpress,并且它向使用中添加了大量附加文件 - 例如添加 TcxSpinEdit然后cxSpinEdit, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, cxTextEdit, cxMaskEdit被添加。我想最小化使用子句,其中控件已从表单中删除(但它们的单位仍保留在使用中),因此需要更好地了解添加它们的过程。

最佳答案

组件可以安排它们在设计器中的存在,强制将特定单元添加到单元的使用子句中。他们通过调用 RegisterSelectionEditor 注册其 TSelectionEditor 子类来实现此目的。这些子类重写 TSelectionEditor.RequiresUnits 并指定必须添加的单位。

例如:

uses
DesignEditors;
....
type
TMySelectionEditor = class(TSelectionEditor)
public
procedure RequiresUnits(Proc: TGetStrProc); override;
end;

procedure TMySelectionEditor.RequiresUnits(Proc: TGetStrProc);
begin
Proc('MyUnit');
end;

procedure Register;
begin
RegisterSelectionEditor(TMyComponent, TMySelectionEditor);
end;

关于delphi - 当组件添加到窗体时,Delphi 单元如何自动添加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20643519/

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