Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.434 Beiträge
 
Delphi 12 Athens
 
#12

AW: TOLEEnum Umwandlung aus String

  Alt Heute, 15:21
Das korrekte Vorgehen wäre die Deklaration einer TCountyCode-Variable:
Delphi-Quellcode:
var countryCode: TCountryCode;

countryCode.AsOleEnum := eiAddr.Country;
CodeSite.Send(csmInfo, 'Country: ' + countryCode.AsString);
Will man es bei einem Einzeiler belassen, dann könnte man im record helper passende class functions ergänzen:
Delphi-Quellcode:
  TCountryCodeHelper = record helper for TCountryCode
  ...
  public
    class function Create(AOleEnum: Cardinal): TCountryCode; overload; static;
    class function Create(const AString: string): TCountryCode; overload; static;
  ...
  end;
...

class function TCountryCodeHelper.Create(AOleEnum: Cardinal): TCountryCode;
begin
  Result.AsOleEnum := AOleEnum;
end;

class function TCountryCodeHelper.Create(const AString: string): TCountryCode;
begin
  Result.AsString := AString;
end;

Damit ließe sich der CodeSite-Aufruf wieder so gestalten:
Delphi-Quellcode:

CodeSite.Send(csmInfo, 'Country: ' + TCountryCode.Create(eiAddr.Country).AsString);
Damit kann man analog auch den anderen Aufruf hiermit ersetzen:
Delphi-Quellcode:

eiAddr.Country := TCountryCode.Create('DE').AsOleEnum;
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat