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