Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: Array [Auszählungstyp] of irgendwas?

  Alt 17. Dez 2013, 12:25
@Mikkey: Der Delphi-Compiler bemängelt auch (an vielen Stellen) derartige Werte, welche sich außerhalb der Definition befinden,
allerdings "warnt" er da nur und läßt es dennoch zu und ich weiß jetzt nicht, in wie weit das beim ELSE zutrifft.


Hab das z.B. ausgenutzt, um eine Fremdkomponente um ein paar States zu erweitern.
Delphi-Quellcode:
const
  miImageMove = Succ(High(TIEMouseInteractVtItems));
  miImageZoom = Succ(miImageMove);
TIEMouseInteractVtItems ist ein Enum, welcher den Zustand der Input-Verarbeitung angibt
und bei dem hab ich zwei eigene Zustände angehängt, welche ich dann selber behandle.
(wobei ich mir diese Warnungen ausgeblendet hab > {$WARNINGS OFF} )

Enums und Sets besitzen leider keine Vererbung.



Und im Speicher sind nunmal auch die anderen Werte möglich.
Delphi-Quellcode:
type
  TMyEnum = (Anfang = 1, Mitte = 3, Ende = 5);
  TMySet = set of TMyEnum;
  
var
  MyEnum: TMyEnum;
  MySet: TMySet;
   
MySet := [TMyEnum.Anfang..TMyEnum.Ende]; // [Anfang..Ende];
for MyEnum in MySet do
  case MyEnum of
    Anfang: ShowMessage('Anfang');
    Mitte: ShowMessage('Mitte');
    Ende: ShowMessage('Ende');
    else ShowMessage(IntToStr(Ord(MyEnum)));
  end;
Delphi-Quellcode:
MySet := [TMyEnum.Anfang..TMyEnum.Ende]; // [Anfang..Ende];
Exclude(MySet, TMyEnum.Mitte);
if TMyEnum.Anfang in MyEnum then ; // hier mal mit dem Debugger nachsehn, was der als Inhalt für MyEnum angibt
$2B or not $2B
  Mit Zitat antworten Zitat