2016-04-26 21 views
2

Ich nahm immer an, dass die dcu-Datei alles ist, was zur Kompilierzeit benötigt wird. Zumindest sollten die Quelldateien (pas und dfm) nicht benötigt werden.Benötigt Delphi dfm zur Kompilierzeit, wenn dcu vorhanden ist?

Ich habe folgende Situation:

  • A Delphi-Anwendung mit zwei Einheiten, die jeweils eine Form enthalten:
    • UMain enthält tmain bilden
    • USubForm enthält Form TSubForm
  • USubForm ist in der uses-Klausel von UMain
  • Nach I Kompiliere dieses Programm, ich habe USubForm.pas und USubForm.dfm entfernt und sie durch das kompilierte USubForm.dcu ersetzt.
  • Compilation führt nun zu einem Fehler: DCC : error : E1026 File not found: 'USubForm.dfm'
  • Beachten Sie, dass, wenn ich nur USubForm.pas entfernen (aber USubForm.dfm Datei anstelle neben USubForm.dcu verlassen), die Zusammenstellung arbeitet.

Ich verstehe nicht. Ich dachte, die dcu-Datei wäre alles was ich brauche (d. H. Es ist die kompilierte Version der Datei pas + dfm).

Ich benutze Delphi XE2 (wir sollten bald upgraden, aber ich denke nicht, dass dies für meine Frage relevant ist).

P.S. Irgendein Kontext: Ich versuche ein kontinuierliches Integrationssystem für unsere internen Delphi-Bibliotheken und -Anwendungen einzurichten. Ich möchte in der Lage sein, Anwendungen zu kompilieren, ohne die Quelldateien der Bibliotheken zu benötigen.

Antwort

5

Ja, Sie benötigen die DFM-Datei, wenn Sie Ihr Projekt verknüpfen. Es wird wie eine Ressourcendatei behandelt. Soweit ich mich erinnere, ist es nicht erforderlich beim Kompilieren.

+0

Ich sehe, dann habe ich mich die ganze Zeit geirrt. Es macht Sinn, dass es wie eine Ressourcendatei behandelt wird. Und zwar während des Linkens, nicht Kompilierens. Vielen Dank. – Roel

+0

Ein DCU ist der kompilierte Code nur für eine PAS-Datei, nicht den DFM. –