![]() |
Eine Frage zu DesignIntf.pas / dcu
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:
die Unit make_dcu_unit hat folgenden Inhalt:
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.
Delphi-Quellcode:
Das ganze ist in einem Verzeichnis (z.B. c:\temp\test) gespeichert und wird kompiliert.
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. 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 :mrgreen: :dp: |
Re: Eine Frage zu DesignIntf.pas / dcu
Lass die Finger von DesignIntf !
Unter Umständen kannst Du Dir sonst 'ne Menge Probleme einhandeln, wenn Du mal von einer Delphi-Version auf eine andere migrieren willst. Das ist ohnehin nur Spiel-Kram, was man - theoretisch - damit alles anstellen kann. Einen wirklichen Zuwachs an Produktivität oder gar spürbare Vorteile für den End-Anwender wirst Du mit irgendeinem Rum-Gefummel an der DesignIntf garantiert nicht erreichen. |
Re: Eine Frage zu DesignIntf.pas / dcu
@Delphi_Fanatic: Ich glaube, dass Du hier nur falsche Unterstellungen machst - zumal Deine Antwort wirklich nicht das Problem löst. Ich kenne MaBuSE gut genug, um zu wissen, dass Deine Antwort in jeder Hinsicht in die falsche Richtung ging ;)
...:cat:... |
Re: Eine Frage zu DesignIntf.pas / dcu
Zitat:
Diese Units werden von vielen Komponenten verwendet. In $(DELPHI)\Source\ToolsAPI\*.* sind die Schnittstellen zu der Delphi IDE definiert. Zitat:
Ich habe schon Komponenten geschrieben (mit Property Editoren) die sich von D1 bis D9 kompilieren lassen. Zitat:
Ein kleines Beispiel für einen Property Editor. Nehmen wir eine Komponente die die Eigenschaft Color (TColor) besitzt. Ohne den Property Editor könnte man nur einen RGB Farbwert (z.B. $00BFEDAF) eingeben. Erst der Property Editor gibt Dir die Möglichkeit eine Combobox mit den Farben und den Realnamen (z.B. clRed) zu sehen. Bei einem Doppelklick auf die Eigenschaft geht außerdem ein Farbauswahldialog auf. Oder alle Experten die in die IDE eingeklinkt werden können (GExperts, SourceConneXion, JCL, ...) Das nur zu Erklärung wozu die ToolsAPI gut ist. Da ich aber nicht beeinflussen kann ob die Komponenten von Drittanbietern diese ToolsAPI benutzen, muss ich sie unterstützen. (Was ja auch kein Problem darstellt) Ich will die ToolsAPI Dateien ja nicht ändern, nur benutzen. Ich habe folgendes Problem: Für unser Releasemanagement muss der Integrationsserver um Delphi 7 erweitert werden. Alle Komponenten der Projekte sind in IBM Rational ClearCase versioniert. Es existiert eine spezielle ViewSpec um alle benötigten Sourcen bereitzustellen. Das Dumme ist, dass beim Kompilieren der Komponenten in deren Output Vob eine DesignIntf.dcu steht, das Configuration Record bei den nicht geänderten Dateien der ViewSpec unvollständig ist, was dann bei labeln des Releases ein Problem darstellt. (DesignIntf.dcu wird nicht mitgelabelt.) Ich will nun wissen wie diese DesignIntf.dcu dorthin kommt. [edit]@sakura: Danke für Deine Antwort ;-)[/edit] |
Re: Eine Frage zu DesignIntf.pas / dcu
Die dcu Files fuer die Delphi Sourcen sind in .dcp Files zusammengefasst. Da DesignIde im requires steht, wird natuerlich das .dcp bevorzugt.
|
Re: Eine Frage zu DesignIntf.pas / dcu
Zitat:
Die auch noch von mir erstellt wurde. Ich kann das aber nicht mehr nachvollziehen. :evil: [edit] Anmerkung: In dem *.dcp sind nur die Symbole enthalten, nicht die kompilierten Units selbst. [/edit] |
Re: Eine Frage zu DesignIntf.pas / dcu
Wenn du DesignIde nicht im requires hattest und gleichzeitig die ToolsAPI Source-Directory in den Pfaden, dann findet Delphi ja die Sourcen zum Uebersetzen und ist auch zufrieden.
|
Re: Eine Frage zu DesignIntf.pas / dcu
Vermutlich werden immer die .bpl Files genutzt, also dynamisch gelinkt.
|
Re: Eine Frage zu DesignIntf.pas / dcu
Zitat:
Ich habe das getestet.
Delphi-Quellcode:
und
package make_dcu;
{...} requires rtl, vcl; contains make_dcu_unit in 'make_dcu_unit.pas'; end.
Delphi-Quellcode:
Obiges Package erzeugt die DesignIntf.dcu.
unit make_dcu_unit;
// Unit dient nur zur Erstellung der *.dcu Dateien interface uses DesignIntf; implementation end. Dann fragt die IDE ob in requires designide.dcp hinzugefügt werden soll. Ist die designide.dcp in der requires enthalten, dann wird die *.dcu nicht mehr erstellt. Vielen Dank an Robert, Sakura und Delphi_Fanatic für die Antworten. :cheers: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz