Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-02-2017
bitbow bitbow is offline
Miembro
 
Registrado: jul 2006
Posts: 366
Poder: 20
bitbow Va camino a la fama
Si tienes
EstadoTipo = (NO_LEIDA, ACEPTADA, RECHAZADA, EXPIRADA);
Al final solo tienes de que tipo es el estado actuamente, solo necesitas compar el Estadotipo.

con algun case o varios if y devolver la cadena que desees.

Estadotipo no va a contener un valor si no el tipo.

Saludos.
__________________
¡Ni como ayudarte Niño!!
bitbow
Responder Con Cita
  #2  
Antiguo 07-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
[SOLUCIONADO] Tratamiento de tipos enumerados

Gracias bitbow.
No había trabajado nunca con este tipo de datos y me estaba volviendo loco.
Ahora lo entiendo:
Código:
         case result.Metadatos[i].Estado of
             EstadoTipo.NO_LEIDA: Estado := 'NO_LEIDA';
             EstadoTipo.ACEPTADA: Estado := 'ACEPTADA';
             EstadoTipo.RECHAZADA: Estado := 'RECHAZADA';
             EstadoTipo.EXPIRADA: Estado := 'EXPIRADA';
         end;
Un saludo.
Responder Con Cita
  #3  
Antiguo 07-02-2017
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 17
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Podes usar este truco: Ayudante para tipos enumerados

Código PHP:
var
  
sstring;
begin
  s 
:= Enum<EstadoTipo>.ValueName(result.Metadatos[i].Estado);
end

Última edición por AgustinOrtu fecha: 07-02-2017 a las 23:46:31.
Responder Con Cita
  #4  
Antiguo 07-02-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para versiones mas antiguas de Delphi, otra opcion es:
Código Delphi [-]
uses TypInfo;
...
function StateName( const Estado: EstadoTipo ): string;
begin
  Result := GetEnumName( TypeInfo( EstadoTipo ), Ord( Estado ) );
end;

Uso:
Código Delphi [-]
...
  Estado := StateName( result.Metadatos[i].Estado );

  // o de forma directa: 
  Estado := GetEnumName( TypeInfo( EstadoTipo ), Ord( result.Metadatos[i].Estado ) );

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-02-2017 a las 00:18:54. Razón: agregar opción
Responder Con Cita
  #5  
Antiguo 08-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
Gracias [AgustinOrtu] y ecfisa.
Al final é optado por la solución de ecfisa:
Código:
uses TypInfo;
...
memo.Lines.Add('Estado '+GetEnumName( TypeInfo( EstadoTipo ), Ord( result.Metadatos[i].Estado )));
Responder Con Cita
  #6  
Antiguo 08-02-2017
Avatar de apicito
apicito apicito is offline
Miembro
 
Registrado: may 2003
Ubicación: Ourense
Posts: 341
Poder: 24
apicito Va por buen camino
Abusando de vuestra paciencia, aprovecho que ya está en el post #6 de este hilo la definición del TRemotable y el xml que se me devuelve para hacer otra pregunta.
Si el xml me devuelve el valor del TicketID en esta etiqueta:
Código:
	<tns:Metadatos tns:ticketID="148620">
		<tns:MensajeID>1485796663920-1-0</tns:MensajeID>
y está definido en el TRemotable como:
Código:
  MetadatosTipo = class(TRemotable)
  private
    FticketID: ticketID;
  ....
  published
    property ticketID:                ticketID                  Index (IS_ATTR) read FticketID write FticketID;
Como puedio obtener el valor del TicketID?.
Por que a pesar de que el IDE me lo sugiere como uno de los miembros de result.Metadatos[i], si hago:
Código:
memo.Lines.Add('ticketID '+result.Metadatos[i].ticketID);
me apareceen blanco.
Tengo que hacer algo distinto al estar declarado com IS_ATTR?.
Un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
constantes temporales Crandel Varios 11 17-01-2007 00:53:02
Constantes o uso de Dominios Abel Garcia Firebird e Interbase 1 10-10-2006 16:15:29
variables y constantes SaGuMa Varios 13 03-10-2006 16:18:03
Def. de constantes - Casting Mariana OOP 3 21-10-2005 19:24:23
constantes globales acrophet Varios 3 18-09-2003 13:51:45


La franja horaria es GMT +2. Ahora son las 19:29:46.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi