Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   gleiche Unit in interface und implementation Bezeichner redefiniert! (https://www.delphipraxis.net/169391-gleiche-unit-interface-und-implementation-bezeichner-redefiniert.html)

tralala 17. Jul 2012 08:50

gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Hallo zusammen,

ich habe mal eine kleine Frage. Ich habe eine Tool-Unit, welche ein paar globale Proceduren hat. Ich habe diese ganz Normal im Interfaceteil deklariert
und im Implementation definiert. Das Problem ist das ich nicht kompilieren kann, weil der Compiler sagt, das der Bezeichner redefiniert wäre. Womit er ja auch Recht hat, den ich brauche die gleichen units einmal im interfaceabschnitt wegen der übergbenen Datentypen (zb.TColor) und im implementation wegen der Funktionen.

bsp.

Delphi-Quellcode:
interface

uses Graphics;

Procedure CreateMaskedBitmap( Var Source: TBitmap;
                              Var Mask: TBitmap;
                              TransparentColor: TColor );

implementation

uses Graphics;

procedure CreateMaskedBitmap(...)
begin

end;
Jemand ne Idee wie ich das lösen könnte?

mfg

Uwe Raabe 17. Jul 2012 08:51

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Zitat:

Zitat von tralala (Beitrag 1174888)
Jemand ne Idee wie ich das lösen könnte?

Lass sie im Implementation-Teil weg. Alles was im Interface-Teil steht, ist innerhalb der ganzen Unit verfügbar.

tralala 17. Jul 2012 08:55

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Hallo Uwe,

erstmal danke für deinen Rat, so habe ich es auch in Erinnerung von meinem Delphi7. Ich arbeite hier mit Delphi6 und es funktioniert nicht auf diese Weise. Der Compiler meint dann undefinierter Bezeichner! Kann eventuell der Aufruf von Initialization schuld sein?

mfg

uligerhardt 17. Jul 2012 09:17

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Poste doch mal eine minimale Unit, bei der das Problem auftritt. Das hier:
Delphi-Quellcode:
unit Unit3;

interface

uses Graphics;

procedure CreateMaskedBitmap(var Source: TBitmap;
  var Mask: TBitmap;
  TransparentColor: TColor);

implementation

procedure CreateMaskedBitmap(var Source: TBitmap;
  var Mask: TBitmap;
  TransparentColor: TColor);
begin

end;

initialization
  //
end.
lässt sich z.B. bei mir (D2007) kompilieren.

Bernhard Geyer 17. Jul 2012 09:34

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Zitat:

Zitat von tralala (Beitrag 1174890)
Kann eventuell der Aufruf von Initialization schuld sein?

Initialization muss AFAIK nach allen Funktiondefinitionen sein

implementation

... funktionen ...

initialization
...
finalization
...
end.

DeddyH 17. Jul 2012 10:09

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
So habe ich das auch in Erinnerung: unmittelbar vor das abschließende "end." den finalization-Abschnitt (so vorhanden), davor den initialization-Abschnitt.

Bummi 17. Jul 2012 10:11

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
du hast 2 mal

uses Graphics;

drin ...

Bernhard Geyer 17. Jul 2012 10:16

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
Zitat:

Zitat von Bummi (Beitrag 1174902)
du hast 2 mal

uses Graphics;

drin ...

Ist schon mit Post #2 und #3 gelöst

Bummi 17. Jul 2012 10:28

AW: gleiche Unit in interface und implementation Bezeichner redefiniert!
 
dann hatte ich es falsch verstanden :oops:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:35 Uhr.

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