Moin!
Mir passiert es immer wieder, dass bei einem einfachen Compilerlauf (STRG-F9) klassenlokal definierte Typen nicht gefunden werden:
Delphi-Quellcode:
unit A;
interface
uses
System.Classes;
type
TMyClass =
class(
Object)
public type
TMyEnum = (enA, enB, enC);
end;
{...}
unit B;
interface
{...}
implementation
uses
A;
procedure Produce;
var
LEnum = TMyClass.TMyEnum;
// <-- E2003 Undeklarierter Bezeichner: 'TMyClass.TMyEnum'
LEnum2 = TMyEnum;
// <-- E2003 Undeklarierter Bezeichner: 'TMyEnum'
begin
{...}
end;
Das Problem tritt frustrierenderweise nur sporadisch auf. Dagegen hilft nur, entweder ein Fullbuild oder vor dem Compilieren die DCUs zu löschen. Das ist insofern etwas lästig, weil es sich um ein
Package-Projekt handelt, das ich dann jedesmal deinstallieren muss, Delphi schließen und wieder auf, kompilieren, installieren, nochmal schließen und wieder auf.
Wenn ich die Deklaration von TMyEnum aus der Klasse heraus nehme und in eine separate
Unit verlege, tritt das Problem nicht auf. Allerdings wäre das der Ordnung und Übersichtlichkeit halber nur die B-Lösung.
Grüße
Cody