Ver Mensaje Individual
  #1366  
Antiguo 30-05-2017
RubenMon RubenMon is offline
Registrado
NULL
 
Registrado: feb 2017
Posts: 3
Reputación: 0
RubenMon Va por buen camino
Hola.

Un pequeño aporte.
Me he liado bastante para pasar de texto al indice de las enumeraciones de los XMLNS que genera Delphi. Por ejemplo para saber el índice del país a partir del código del país en texto.
He visto algunas soluciones en otras respuestas pero hacía falta declarar listas o arrays auxiliares.

Una pequeña función puede ayudar en estos casos:

Código:
function IndiceEnum(Info: PTypeInfo; const Name: string): Integer;
var
  InternalName: string;
begin
  InternalName := RemClassRegistry.GetInternalPropName(Info, Name);
  Result := GetEnumValue(Info, InternalName);
  if Result < 0 then
    raise Exception.CreateFmt('Valor %s no encontrado en enumeracion %s', [Name, Info^.Name]);
end;
y en el código se puede colocar

Código:
FacturaExpedida.Contraparte.IDOtro.CodigoPais := CountryType2(IndiceEnum(TypeInfo(CountryType2), Pais));
Donde "Pais" es una variable de tipo "string" que contiene el código del país ('FR', 'IT', etc);

La misma función se puede utilizar con otras enumeraciones que estén declaradas en los XLMNS.

Rubén.
Responder Con Cita