Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu' (https://www.delphipraxis.net/171380-dxe3-f1026-datei-nicht-gefunden-designintf-dcu.html)

PeterPanino 4. Nov 2012 15:35

DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Hallo!

Ich verwende in Delphi XE3 Pro in einer Komponenten-Unit in der uses-Klausel DesignIntf, DesignEditors. Das Package mit dieser Unit kompiliert ohne Probleme.

Wenn ich jedoch ein Programm kompilieren möchte, das diese Komponente verwendet, meckert der Compiler:
"[dcc32 Fataler Fehler]: F1026 Datei nicht gefunden: 'DesignIntf.dcu'"

$(BDS)\source\ToolsAPI befindet sich natürlich im Suchpfad.

Wo ist der Fehler?

hoika 4. Nov 2012 16:18

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Hallo,

diverse Hinweise findest du hier.

https://forums.embarcadero.com/threa...?threadID=1966


Heiko

USchuster 4. Nov 2012 16:33

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Zitat:

Zitat von PeterPanino (Beitrag 1189646)
Ich verwende in Delphi XE3 Pro in einer Komponenten-Unit in der uses-Klausel DesignIntf, DesignEditors. Das Package mit dieser Unit kompiliert ohne Probleme.

Wenn ich jedoch ein Programm kompilieren möchte, das diese Komponente verwendet, meckert der Compiler:
"[dcc32 Fataler Fehler]: F1026 Datei nicht gefunden: 'DesignIntf.dcu'"

Wo ist der Fehler?

DesignIntf ist nur zur Verwendung zur Designzeit vorgesehen und der Fehler ist in der Komponenten-Unit, welche vermutlich auch einen Komponenteneditor enthält. Ein Komponenteneditor, welcher z.B. DesignIntf verwendet, muss daher in eine eigene Unit ausgelagert werden (oder man verwendet IFDEFs).

Zitat:

Zitat von PeterPanino (Beitrag 1189646)
$(BDS)\source\ToolsAPI befindet sich natürlich im Suchpfad.

Suchpfad <> Bibliothekspfad

PeterPanino 4. Nov 2012 17:10

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Danke! Hier nochmals die Lösung auf Deutsch und etwas präziser, wenn andere danach suchen sollten:

In Projekt -> Optionen -> Delphi-Compiler -> Compilieren -> Weitere Optionen -> Weitere Optionen für die Übergabe an den Compiler folgendes eintragen: -LUDesignIDE

Auf Englisch ist der Pfad: Project>Options>Delphi Compiler>Compiling>Other Options>Additional options to pass to the compiler

Leider steht auf dieser Seite nicht, ob der Fehler bei Embarcadero liegt, die vergessen haben, diese Option einzufügen, oder ob der Fehler in der Konfiguration des Komponenten-Packages liegt. Es wäre wichtig, diese Ursache zu kennen, vor allem, wenn man die Komponente weitergeben möchte!

PeterPanino 4. Nov 2012 17:14

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Zitat:

Zitat von USchuster (Beitrag 1189658)
Ein Komponenteneditor, welcher z.B. DesignIntf verwendet, muss daher in eine eigene Unit ausgelagert werden (oder man verwendet IFDEFs).

Vielen Dank für den Hinweis zur Fehlerursache! Welche IFDEFs sollte man wo und wie verwenden?

PeterPanino 4. Nov 2012 17:49

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Ich habe jetzt nachgeschaut: In der DPK-Datei ist die Compiler-Direktive {$DESIGNONLY} bereits enthalten!

Müsste nicht diese dafür sorgen, dass das Package nur für die IDE kompiliert wird?

USchuster 4. Nov 2012 17:58

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Zitat:

Zitat von PeterPanino (Beitrag 1189665)
Danke! Hier nochmals die Lösung auf Deutsch und etwas präziser, wenn andere danach suchen sollten:

In Projekt -> Optionen -> Delphi-Compiler -> Compilieren -> Weitere Optionen -> Weitere Optionen für die Übergabe an den Compiler folgendes eintragen: -LUDesignIDE

Auf Englisch ist der Pfad: Project>Options>Delphi Compiler>Compiling>Other Options>Additional options to pass to the compiler

Leider steht auf dieser Seite nicht, ob der Fehler bei Embarcadero liegt, die vergessen haben, diese Option einzufügen, oder ob der Fehler in der Konfiguration des Komponenten-Packages liegt. Es wäre wichtig, diese Ursache zu kennen, vor allem, wenn man die Komponente weitergeben möchte!

Autsch! Die benötigten Packages fügt man über den Projekt Manager (Requires bzw. Erfordert Eintrag) oder über die requires Klausel im Quellcode des Packages (.DPK) hinzu.

PeterPanino 4. Nov 2012 18:24

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Zitat:

Zitat von USchuster (Beitrag 1189658)
(oder man verwendet IFDEFs).

Ich habe jetzt in der Komponenten-Unit diese Compiler-Direktiven für Delphi XE3 verwendet:

{$IFDEF VER240} DesignIntf, DesignEditors, {$ENDIF}

Die Komponente kompiliert damit ohne Probleme, aber beim Kompilieren des Programms, das diese Komponente verwendet, meckert wieder der Compiler mit der obigen Fehlermeldung.

Welche IFDEFs sollte man denn nun verwenden?

daywalker9 4. Nov 2012 18:43

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Definiere dir ein eigenes zb:
Delphi-Quellcode:
{$IFDEF MYPACKAGE}{$ENDIF}
Und fügst diese in die Defines vom Package-Projekt. In deinem Programm brauchst du dann nichts mehr machen.

USchuster 4. Nov 2012 18:50

AW: DXE3: F1026 Datei nicht gefunden: 'DesignIntf.dcu'
 
Zitat:

Zitat von PeterPanino (Beitrag 1189673)
Zitat:

Zitat von USchuster (Beitrag 1189658)
(oder man verwendet IFDEFs).

Ich habe jetzt in der Komponenten-Unit diese Compiler-Direktiven für Delphi XE3 verwendet:

{$IFDEF VER240} DesignIntf, DesignEditors, {$ENDIF}

Die Komponente kompiliert damit ohne Probleme, aber beim Kompilieren des Programms, das diese Komponente verwendet, meckert wieder der Compiler mit der obigen Fehlermeldung.

Welche IFDEFs sollte man denn nun verwenden?

Es gibt kein eingebautes also hast Du die Qual der Wahl.

Den Designtime Code von Komponenten sollte man in eine separate Unit auslagern, aber wenn man kein Runtime Package benötigt, dann kann man auch den Designtime Code per IFDEF nur in das Designtime Package einkompilieren. Die Unit könnte so aussehen

Delphi-Quellcode:
unit FooComp;

interface

uses
  {$IFDEF DESIGN_ONLY}DesignIntf, DesignEditors,{$ENDIF}
  System.Classes;

  {$IFDEF DESIGN_ONLY}
  //Designtime Editor interface code depends on DesignIntf...
  {$ENDIF}

implementation

{$IFDEF DESIGN_ONLY}
//Designtime Editor implementation code depends on DesignIntf...
{$ENDIF}

end.
und das Package wäre dann im Beispiel mit der Bedingung DESIGN_ONLY zu kompilieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:58 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz