(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.