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;