Wie werden Delphi-Einheiten automatisch hinzugefügt, wenn eine Komponente einem Formular hinzugefügt wird? [Duplikat]

8

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.

    
Alister 17.12.2013, 20:00
quelle

1 Antwort

13

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%     
David Heffernan 17.12.2013, 20:18
quelle

Tags und Links