加入收藏 | 设为首页 | 会员中心 | 我要投稿 济源站长网 (https://www.0391zz.cn/)- 数据工具、数据仓库、行业智能、CDN、运营!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

将组件添加到表单时,如何自动添加Delphi单元?

发布时间:2020-12-25 11:27:43 所属栏目:资源 来源:网络整理
导读:参见英文答案 Can I make a custom Delphi component add multiple units to the uses clause?1个 Why is my Component auto adding other units to the uses interface?4个 如果我从IDE中向表单添加TXMLDocument,则会自动添加单元Xml.XMLDoc,Xml.xmldom,Xml

参见英文答案 > Can I make a custom Delphi component add multiple units to the uses clause?1个
> Why is my Component auto adding other units to the uses interface?4个
如果我从IDE中向表单添加TXMLDocument,则会自动添加单元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.我想最小化使用条款,其中控件已从表单中删除(但它们的单位仍在使用中),因此需要了解更好地添加它们的过程.

解决方法

组件可以安排他们在设计器中的存在强制将特定单元添加到单元的uses子句中.他们这样做是通过调用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;

(编辑:济源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读