Hallo,
nein - ich will nicht wissen wie und warum DesgnIntf nach DesignIntf zu ändern ist.
Das ist mir schon klar und wurde hier in der
DP auch schon beschrieben.
Meine Frage ist folgende:
Warum werden keine *.dcu Dateien erzeugt?
(Bitte unten weiterlesen bevor Du antwortest)
Wenn ich eine
Package (z.B. make_dcu.dpk) mit folgendem Inhalt habe:
Delphi-Quellcode:
package make_dcu;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS OFF}
{$RANGECHECKS OFF}
{$REFERENCEINFO ON}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESIGNONLY}
{$IMPLICITBUILD OFF}
requires
rtl,
vcl,
designide,
vclactnband,
vclx,
visualclx;
contains
make_dcu_unit
in '
make_dcu_unit.pas';
end.
die
Unit make_dcu_unit hat folgenden Inhalt:
Delphi-Quellcode:
unit make_dcu_unit;
// Unit dient nur zur Erstellung der *.dcu Dateien
interface
uses
DesignConst, DesignEditors, DesignIntf, DesignMenus, DesignWindows,
EditIntf, ExptIntf, FileIntf, IStreams, PropertyCategories, ToolIntf,
ToolsAPI, TreeIntf, VCLEditors, VCLSprigs, VcsIntf, VirtIntf;
implementation
end.
Das ganze ist in einem Verzeichnis (z.B. c:\temp\test) gespeichert und wird kompiliert.
Warum erzeugt der Compiler für die Units keine *.dcu Dateien?
Es werden nur die make_dcu.* und make_dcu_unit.dcu Dateien erstellt.
Die einzige Ausnahme ist die erstellte VcsIntf.dcu.
Ich weiß, das diese Dateien nur in Designtime
Package verwendet werden können und es irgendwie auch eine gewisse Compilermagic gibt, die das Kompilieren in eine *.exe erschwert.
Die Symbolinformationen der Dateien sind ja in der designide.dcp Datei enthalten. Diese werden in die *.bpl Dateien gelinkt.
(btw: es werden Warnungen ausgegeben, das einige Dateien veraltet sind, es sind also neuere Versionen in designide.dcp vorhanden)
Aber: ich habe auch schon Verzeichnisse gefunden in denen eine kompilierte DesignIntf.dcu zu finden war. (von mir kompiliert mit D7)
Wenn diese Dateien nicht kompiliert werden, warum gibt es dann diese von mir kompilierte Fassung der *.dcu ???
Ich hoffe jemand hat eine schlaue Antwort für mich