Einzelnen Beitrag anzeigen

DelphiManiac

Registriert seit: 5. Dez 2005
742 Beiträge
 
#1

enum und Case verwenden (Übersetzung aus C-Quellcode)

  Alt 28. Aug 2009, 11:58
Hallo,

ich muss einen Programmablauf eines C-Programmes in Delphi abbilden und tue mir bei den Aufzählungstypen (enum) schwer.

Kurze Erklärung es geht um Fehlercodes:

1 = Fehler A
2 = Fehler B
3 = Fehler C

etc

das enum in C sieht wie folgt aus:

typedef enmum {
FAN_UNDEF = 0,
FAN_OK,
FAN_FAIL
} eFanStat_t

Ziel soll es sein, dass ich ein Byte mit dem Status zurückbekomme und dann auf die Fehlerwerte prüfe

So habe ich das enum in Delphi umgesetzt

Delphi-Quellcode:
// Lüfter-Status
eFanStat_t = (
      FAN_UNDEF = 0 // undefiniert
      FAN_OK = 1 // fan ok
      FAN_FAIL = 2, // fan failed
      FAN_NA = 3 // fan nicht vorhanden
);
jetzt wollte ich eine case Anweisung Ausführen um herauszufinden welcher Fehler besteht:

Delphi-Quellcode:
    case errCode of
      FAN_UNDEF:
      begin

      end;
     FAN_OK:
      begin

      end;
...
    end;
Doch hier habe ich logischerweise eine Typunverträglichkeit.
Alternative wäre die Errorcodes als Konstanten zu definieren, aber das würde ja keinen Sinn machen, schließlich will ich ja ein Enum verwenden...

Vielen Dank schonmal

Grüße
DelphiManiac
  Mit Zitat antworten Zitat