Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Angeblich nicht deklariert ?! (https://www.delphipraxis.net/137088-angeblich-nicht-deklariert.html)

hoika 14. Jul 2009 07:40

Re: Angeblich nicht deklariert ?!
 
Hallo,

Zitat:

Aber wie kommt es dass ein Teil (bis br9600) angeblich deklariert ist?
Viell. weil das die andere Unit schon gemacht hat.

Kommentier mal den Code ab br9600 aus,
dann Ctrl + linke Maustaste auf TBaudrate, dann sollte die IDE
in die Unit springen, wo es für den Compiler definiert ist.

Viell. reicht es auch, die Maus darüber zu ziehen (Tool-Tip).


Hast du das unit_1.TBaudrate denn schon mal ausprobiert ?


Heiko

aaaaaaaaaa_10 14. Jul 2009 07:53

Re: Angeblich nicht deklariert ?!
 
Zitat:

Hast du das unit_1.TBaudrate denn schon mal ausprobiert ?
Ja,hab ich,aber macht keinen Unterschied.

Wenn ich mir den Hinweis anzeigen lassen (mit Maus drüber fahren) steht das da :
Delphi-Quellcode:
type DGLoabls.TBaudrate: br1200..br57600 - DGloabls.pas

hoika 14. Jul 2009 08:02

Re: Angeblich nicht deklariert ?!
 
Hallo,

da hast du die Unit, die es schon definiert hat.
Falls sie nicht im Interface deiner eigenen Unit steht,
wird sie von einer der Interface-Units selber referenziert.

Aber:
ein unit_1.TBaudrate in deinem Record muss funktionieren.

Zeig doch mal deine komplette Unit.


Heiko

aaaaaaaaaa_10 14. Jul 2009 08:35

Re: Angeblich nicht deklariert ?!
 
Wäre zu viel... Die Unit, wo die Var deklariert sind, hatte ich eingebunden in der Unit, wo ich sie benutze

hoika 14. Jul 2009 08:42

Re: Angeblich nicht deklariert ?!
 
Hallo,

was steht eigentlich, wenn du per Maus auf

br1200 im Case gehst ?

Ich denke, auch dort nimmt er das aus der anderen Unit.

Als Trick könntest deine TBaudrate Definition in eine eigene
Unit packen und die als erstes in Interface-Teil reinpacken.

U.U. funktioniert dann aber die andere Unit nicht ...


#update:#
Was passiert eigentlich, wenn du das TBaudrate ins Implementation packst ?

Oder du machst folgendes:
Delphi-Quellcode:
type
  TBaudRate = Integer;
const
  c_br1200 = 0;
  c_br2400 = 1;
#update2:#
Hast du den Qellcode der DGloabls Unit ?
Ist dort der 19200 definiert ?


Heiko

hoika 14. Jul 2009 08:58

Re: Angeblich nicht deklariert ?!
 
Hallo

Zitat:

Aber die beiden Dinge sind doch in derselben Unit.
Zitat:

Wäre zu viel... Die Unit, wo die Var deklariert sind, hatte ich eingebunden in der Unit, wo ich sie benutze
Was ist denn nun definiert, Variablen oder Typen ?
Doch 2 Units ?



Heiko

aaaaaaaaaa_10 14. Jul 2009 09:05

Re: Angeblich nicht deklariert ?!
 
Zitat:

was steht eigentlich, wenn du per Maus auf

br1200 im Case gehst ?
Da kommt nix.

Zitat:

Hast du den Qellcode der DGloabls Unit ?
Ist dort der 19200 definiert ?

Den Quellcode hab ich,aber da ist nix von den ganzen brxxxx definiert

aaaaaaaaaa_10 14. Jul 2009 09:07

Re: Angeblich nicht deklariert ?!
 
Delphi-Quellcode:
 TBaudrate = (br1200, br2400, br4800, br9600, br19200, br38400, br57600);

TVerbParam = record
    Baudrate: TBaudrate;
Das steht in Unit1 und das:
Delphi-Quellcode:
 case (theVerbParam.Baudrate) of
      br1200: comPort.Baud := 1200;
      br2400: comPort.Baud := 2400;
      br4800: comPort.Baud := 4800;
      br9600: comPort.Baud := 9600;
      br19200: comPort.Baud := 19200;
      br38400: comPort.Baud := 38400;
      br57600: comPort.Baud := 57600;
    end;
in Unit2. Unit1 habe ich in Unit2 eingebunden

hoika 14. Jul 2009 09:18

Re: Angeblich nicht deklariert ?!
 
Hallo,

Und das folgende hast du schon versucht ?
Delphi-Quellcode:
TVerbParam = record
    Baudrate: Unit1.TBaudrate;
Ansonsten, ohne (nicht funktionierendes) Minimal-Bsp. ist dir nicht zu helfen.

Auf jeden Fall ist es ein Typ-Konflikt mit einem gleichlautenden Typ einer anderen Unit (DGlobals).

Was für ein Delphi hast du denn ?

Wie sieht TBaudrate in der DGlobals aus ?


Heiko

aaaaaaaaaa_10 14. Jul 2009 09:24

Re: Angeblich nicht deklariert ?!
 
ja,das hab ich probiert.

delphi6 hab ich.

mich wundert es halt nur, dass die ertsten 4 def erkannt werden und die letzten 3 nicht...

:?: :?: :?:

Delphi-Quellcode:
TBaudrate = (br1200, br2400, br4800, br9600, br19200, br38400, br57600);
so sieht das in DGlobals.pas aus


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:29 Uhr.
Seite 2 von 3     12 3      

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