Ich habe zwei Projekte, die in einer Projektgruppe zusammengefasst werden.
Projekt 1:
Delphi-Quellcode:
program Proj1;
uses
Forms,
SysUtils,
Form1 in 'Form1.pas' {Form1},
ZusatzUnit in 'ZusatzUnit.pas',
NochneUnit in 'NochneUnit.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
Form1:
Delphi-Quellcode:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses ZusatzUnit;
end.
Projekt2:
Delphi-Quellcode:
program Proj2;
{$DEFINE PROJEKTSCHALTER2}
uses
Forms,
SysUtils,
Form2 in 'Form2.pas' {Form2},
ZusatzUnit in 'ZusatzUnit.pas';
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Form2:
Delphi-Quellcode:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm2 =
class(TForm)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form2: TForm1;
implementation
{$R *.dfm}
uses ZusatzUnit;
end.
ZusatzUnit.pas:
Delphi-Quellcode:
unit ZusatzUnit;
interface
{$IFNDEF PROJEKTSCHALTER2}
function NutzeNochneUnit: Integer;
{$ENDIF}
procedure NutzeNichtNochneUnit;
implementation
{$IFNDEF PROJEKTSCHALTER2}
uses NochneUnit;
procedure NutzeNochneUnit;
begin
Result := FunktionAusNochneUnit * 3;
end;
{$ENDIF}
procedure NutzeNichtNochneUnit;
begin
MacheIrgendwas;
end;
end.
NochneUnit.pas
Delphi-Quellcode:
unit NochneUnit;
interface
function FunktionAusNochneUnit: Integer;
implementation
function FunktionAusNochneUnit: Integer;
begin
Result := 7;
end;
end.
Beide Projekte speichern ihre compilierten Units in
VERSCHIEDENEN Verzeichnissen.
Nun habe ich das Problem, dass beim Compilieren von Proj2 der Fehler kommt, NochneUnit sei nicht zu finden.
Ist dies eine normale Fehlermeldung? Wenn ja, warum? Schliesslich sage ich dem Compiler doch, dass NochneUnit nur dann verwendet werden soll, wenn
PROJEKTSCHALTER2 NICHT definiert ist. Und in Proj2 wird es doch gesetzt.