Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   ENUM Vererbung? (https://www.delphipraxis.net/158568-enum-vererbung.html)

David Martens 22. Feb 2011 16:18

ENUM Vererbung?
 
Ist es eigentlich möglich Enums zu vererben?

Danke
David

P.S.: Ich habe Delphi XE

himitsu 22. Feb 2011 17:50

AW: ENUM Vererbung?
 
Nein. (leider)


Vererbung = Objekte (indirekt auch Interfaces)
Enum = einfacher Typ (fast wie ein Byte/Word/...)

Deep-Sea 22. Feb 2011 18:18

AW: ENUM Vererbung?
 
Aber man kann Einschränkungen machen:
Delphi-Quellcode:
TMeinEnum = (meEins, meZwei, meDrei, meA, meB, meC)
TZahlen = meEins..meDrei;
TBuchstaben = meA..meC;

David Martens 23. Feb 2011 13:01

AW: ENUM Vererbung?
 
Mal etwas konkreter, vielleicht hab ich ja auch schon eine Lösung.

In dem Enum stehen alle Filter. Jetzt habe ich für verschiedene Programme unterschiedliche Filter. Bisher wurde das über Compilerflags geregelt:

Delphi-Quellcode:
 
  {$IFDEF X1}
  {$ELSE}
  {$ENDIF}
Überall muß das rein.

Um das zu umgehen habe ich folgendes versucht:

Unit1:
Delphi-Quellcode:
{$IFDEF PROG1}
,
Filter1,
Filter2,
Filter3
{$ENDIF PROG1}
Unit2:
Delphi-Quellcode:
{$IFDEF PROG2}
,
FilterA,
FilterB,
FilterC
{$ENDIF PROG2}
Unit3:
Delphi-Quellcode:

type
  TFilterEnum = (
    FilterInizial
    {$INCLUDE 'Unit1.pas'}
    {$INCLUDE 'Unit2.pas'}
  );

const
  c_Filter_First = Low (TFilterEnum);
  c_Filter_Last = High(TFilterEnum);
Wahlweise dir IFDEFs auch um die INCLUDEs.

Zum Benutzen muß ich dann nur Unit3 einbinden. Leider kappt das aber nicht so wie gewollt. Ein
Delphi-Quellcode:
{$DEFINE PROG1}
wird nicht erkannt. Bei den "alten" Programmen geht es (die wurden von Delphi 2006 auf XE umgestellt) aber wenn ich ein neues anlege scheint die Buildkonfiguration in der hinsicht nicht mehr richtig zu funktionieren.

Danke David


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