Thema: Delphi IFDEF/IFNDEF und Units

Einzelnen Beitrag anzeigen

DevilsCamp
(Gast)

n/a Beiträge
 
#1

IFDEF/IFNDEF und Units

  Alt 22. Jan 2007, 16:08
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.
  Mit Zitat antworten Zitat