Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.996 Beiträge
 
Delphi 12 Athens
 
#2

AW: Prüfen ob ein Integerwert in einem ENUM existiert

  Alt 18. Feb 2021, 06:52
Du könntest vielleicht einen Helper dafür anlegen,
mal so hingeschrieben:

Delphi-Quellcode:
type
    TOrderField = (ofBelegnummer=4, ofBelegdatum=6, ofKonto, ofKontoName, ofBank, ofZahldatum);

    TOrderField_Helper = record helper for TOrderField
        function Contains( const AValue : Integer ) : Boolean;
    end;


...

function TOrderField_Helper.Contains( const AValue : Integer ) : Boolean;
var
    LValue : TOrderField;
begin
    LValue := TOrderField( AValue );
    
    case LValue of
        TOrderField.ofBelegnummer,
        TOrderField.ofBelegdatum,
        TOrderField.ofKonto,
        TOrderField.ofKontoName,
        TOrderField.ofBank,
        TOrderField.ofZahldatum): Result := True;
        else
             Result := False;
end;
Wäre aber besser vor der Umwandlung zu Prüfen,
bin jetzt nicht sicher was passiert wenn AValue z.B. mit 100 reinkommt.
Bin nicht am Rechner und kann es nicht checken ob das eine Exception wirft, aber eigentlich sollte es in den else-Zweig laufen.
  Mit Zitat antworten Zitat