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

 随便他们好了 发布于 2023-02-09 18:28

如果我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,并为使用添加了大量额外文件 - 例如添加a TcxSpinEdit然后cxSpinEdit, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, cxTextEdit, cxMaskEdit添加.我想最小化使用条款,其中控件已从表单中删除(但它们的单位仍然在使用中),因此需要了解更好地添加它们的过程.

1 个回答
  • 组件可以安排他们在设计器中的存在强制将特定单元添加到单元的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;
    

    2023-02-09 18:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有