Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Enumeration mit gleichen Namen innerhalb einer Unit - Bezeichner redeklariert (https://www.delphipraxis.net/216069-enumeration-mit-gleichen-namen-innerhalb-einer-unit-bezeichner-redeklariert.html)

lxo 23. Okt 2024 08:53

Enumeration mit gleichen Namen innerhalb einer Unit - Bezeichner redeklariert
 
Hallo,

wenn ich in einer Unit folgende Typen definiere bekomme ich die Fehlermeldung "[dcc32 Fehler] Unit1.pas(24): E2004 Bezeichner redeklariert: "e1"".

Würde ich TClass2 in einer anderen Unit definieren funktioniert es.
Kriegt man das auch irgendwie innerhalb einer Unit hin?

Delphi-Quellcode:
  TClass1 = class
  strict private type
    TEnum = (e1, e2, e3);
  end;

  TClass2 = class
  strict private type
    TEnum = (e1, e2, e3);
  end;

Rollo62 23. Okt 2024 09:05

AW: Enumeration mit gleichen Namen innerhalb einer Unit - Bezeichner redeklariert
 
Vielleicht so (ungetestet) ?

Delphi-Quellcode:
TEnum_Base = (e1, e2, e3);

TClass1 = class
  strict private type
    TEnum = TEnum_Base;
  end;

  TClass2 = class
  strict private type
    TEnum = TEnum_Base;
  end;


Ansonsten irgendwas mit {$SCOPEDENUMS ON} ?

lxo 23. Okt 2024 09:10

AW: Enumeration mit gleichen Namen innerhalb einer Unit - Bezeichner redeklariert
 
Zitat:

Zitat von Rollo62 (Beitrag 1542447)
Vielleicht so (ungetestet) ?

Delphi-Quellcode:
TEnum_Base = (e1, e2, e3);

TClass1 = class
  strict private type
    TEnum = TEnum_Base;
  end;

  TClass2 = class
  strict private type
    TEnum = TEnum_Base;
  end;


Ansonsten irgendwas mit {$SCOPEDENUMS ON} ?


Ja für den Fall würde es gehen.
War auch etwas blödes Beispiel, weil die Enumerationen schon unterschiedlich sein können.
Dann kann ich das nicht anwenden.
Also z.B.

Delphi-Quellcode:
  TClass1 = class
  strict private type
    TEnum = ( e1, e2);
  end;

  TClass2 = class
  strict private type
    TEnum = (e1, e2, e3);
  end;

Aber {$SCOPEDENUMS ON} hilft mir weiter.

Danke :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz