Delphi-PRAXiS
Seite 1 von 3  1 23      

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)

aaaaaaaaaa_10 14. Jul 2009 06:10


Angeblich nicht deklariert ?!
 
Hallo,
ich hab das Problem, dass angeblich alles ab br19200 nicht deklariert ist, aber ist es doch oder?

Delphi-Quellcode:
TBaudrate = (br1200, br2400, br4800, br9600, [b]br19200, br38400, br57600[/b]);
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;
Ich weiß nicht, was es sein könnte.

alzaimar 14. Jul 2009 06:18

Re: Angeblich nicht deklariert ?!
 
TBaudrate gibt es 2x in deinem Code. Wenn 'TBaudrate' in der Unit 'FooBar' deklariert ist, dann deklariere 'theVerbParam.Baudrate' als 'Foobar.TBaudrate'.

aaaaaaaaaa_10 14. Jul 2009 06:23

Re: Angeblich nicht deklariert ?!
 
Hab ich das nicht?

Delphi-Quellcode:
TBaudrate = (br1200, br2400, br4800, br9600, br19200, br38400, br57600);
Delphi-Quellcode:
 TVerbParam = record
              ......
              Baudrate: TBaudrate;
              ......

mkinzler 14. Jul 2009 06:51

Re: Angeblich nicht deklariert ?!
 
Möglicherweise gibt es aber eine 2. davon abweuichende Deklaration des Typs.

hoika 14. Jul 2009 06:59

Re: Angeblich nicht deklariert ?!
 
Hallo,

Zitat:

Hab ich das nicht?
nein, hast du nicht.

Bsp.

Delphi-Quellcode:
unit_1;

interface

TBaudrate = (br1200, br2400, br4800, br9600, br19200, br38400, br57600);
unit_2;

uses
unit_1;


Delphi-Quellcode:
TVerbParam = record
              ......
              Baudrate: unit_1.TBaudrate;
              ......
Durch das unit_1.TBaudrate legst du explizit fest,
das der Typ aus unit_1 verwendet werden soll.

Ich hätte einfach TMyBaudrate geschrieben.


Heiko

aaaaaaaaaa_10 14. Jul 2009 07:04

Re: Angeblich nicht deklariert ?!
 
Aber die beiden Dinge sind doch in derselben Unit.

mkinzler 14. Jul 2009 07:05

Re: Angeblich nicht deklariert ?!
 
Die andere Variante aber nicht! :zwinker:

hoika 14. Jul 2009 07:20

Re: Angeblich nicht deklariert ?!
 
Hallo,

aha, gleiche Unit, könnte man ja auch mal hinschreiben ! ;)

also nochmal, gleiche unit_1

unit_1
TBaudrate = XXX

record
Baudrate: unit_1.TBaudrate;


Grund könnte sein, dass eine der Units im Interface
TBaudrate auch definiert, dann gilt diese als 1.

Am einfachsten mache es per TMyBaudrate oder TBaudrate_.


PS:
Ab D2009 giibt es namespaces, die sowas verhindern.
unit_1.TBaudrate ist eigentlich auch schon sowas.


Heiko

aaaaaaaaaa_10 14. Jul 2009 07:23

Re: Angeblich nicht deklariert ?!
 
Aber wie kommt es dass ein Teil (bis br9600) angeblich deklariert ist?

mkinzler 14. Jul 2009 07:32

Re: Angeblich nicht deklariert ?!
 
Zitat:

PS:
Ab D2009 giibt es namespaces, die sowas verhindern.
unit_1.TBaudrate ist eigentlich auch schon sowas.
Namespaces gibt es sogar seit D7


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:38 Uhr.
Seite 1 von 3  1 23      

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