Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Erweitertes Record mit lokalem Type (https://www.delphipraxis.net/135531-erweitertes-record-mit-lokalem-type.html)

ma2xx 12. Jun 2009 14:55


Erweitertes Record mit lokalem Type
 
Hallo Community,
ich nutze Delphi-2007 (als Win32) und habe einen (vermeintlichen) Delphi-Bug bei Erweiterten Records festgestellt:

Folgender Code lässt sich compilieren ...
Delphi-Quellcode:
type
TMyRecordType = (
  MyRT_None,
  MyRT_OK
);

TMyRecord=record
  Typ:TMyRecordType;
end;
Wenn man aber TMyRecordType lokal deklarieren möchte, ...
Delphi-Quellcode:
TMyRecord=record
  type
    TMyRecordType = (
      MyRT_None,
      MyRT_OK
    );
  var
    Typ:TMyRecordType;
end;
... erhalte ich einen Compilerfehler "E2003 Undefinierter Bezeichner: 'TMyRecordType'"

Wenn man aber auf die "schlaue" Idee kommt und den Typ als case definiert ...
Delphi-Quellcode:
TMyRecord=record
  type
    TMyRecordType = (
      MyRT_None,
      MyRT_OK
    );
    case Typ:TMyRecordType of
    MyRT_None:();
end;
... dann kann ich es fehlerfrei compilieren!

Fragen:
1. Wo liegt bei dem mittleren Beispiel der Fehler (bei mir oder beim Compiler)?
2. Kann das bitte jemand mit Delphi-2009 (als Win32) compilieren und mitteilen, ob es das geht?

Gruß
Ma2xx

himitsu 12. Jun 2009 15:17

Re: Erweitertes Record mit lokalem Type
 
kann sein, daß es in D2007 in Records noch nicht geht.

im D2006 geht es übrigens auch nicht
aber im D2009 funktioniert es so.

und in Klassen geht es mindestens seit D2006 überall.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:31 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