Einzelnen Beitrag anzeigen

ma2xx

Registriert seit: 25. Nov 2005
22 Beiträge
 
#1

Erweitertes Record mit lokalem Type

  Alt 12. Jun 2009, 15:55
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
  Mit Zitat antworten Zitat