Wenn ich ein TXMLDocument
zu einem Formular von der IDE hinzufüge, werden die Einheiten Xml.XMLDoc, Xml.xmldom, Xml.XMLIntf, Xml.Win.msxmldom
automatisch hinzugefügt (beim Speichern / Kompilieren), wie weiß die IDE diese Einheiten hinzuzufügen. Ich verstehe, warum / wie XMLDoc
hinzugefügt wird (es enthält TXMLDocument
), aber was ist mit den anderen.
Zusätzlich, wenn ich den DOMVendor von MSXML zu ADOM XML v4 ändere, wird Xml.adomxmldom
automatisch hinzugefügt (beim nächsten Kompilieren). An dieser Stelle kann ich Xml.Win.msxmldom
entfernen, ohne dass es automatisch hinzugefügt wird. Wie kann die IDE dies anhand einer Komponenteneigenschaft wissen?
Ich habe zwei Gründe, diese Frage zu stellen, erstens Neugierde, zweitens bereite ich den Gebrauchsteil einer großen Anzahl von Einheiten auf (Hunderte). Das Projekt verwendet DevExpress und fügt den Anwendungen haufenweise zusätzliche Dateien hinzu - zum Beispiel fügen Sie TcxSpinEdit
und dann cxSpinEdit, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters, cxContainer, cxEdit, cxTextEdit, cxMaskEdit
hinzu. Ich möchte die uses-Klausel minimieren, wo Kontrollen aus Formularen entfernt wurden (aber ihre Einheiten bleiben in den Verwendungen) und müssen daher den Prozess verstehen, durch den sie besser hinzugefügt werden.
Komponenten können veranlassen, dass ihre Anwesenheit im Designer bestimmte Einheiten dazu zwingt, der uses-Klausel der Einheit hinzugefügt zu werden. Sie tun dies, indem sie RegisterSelectionEditor
aufrufen, um ihre Unterklassen TSelectionEditor
zu registrieren. Diese Unterklassen überschreiben TSelectionEditor.RequiresUnits
und geben dort die Einheiten an, die hinzugefügt werden müssen.
Zum Beispiel:
%Vor%Tags und Links delphi