Ver Mensaje Individual
  #7  
Antiguo 20-04-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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.
Cita:
Empezado por Angel.Matilla Ver Mensaje
Debe ser algo así. Lo cierto es que poniendolo así:
Código:
NombreUser = Usuario->Text == Date().FormatString("yymmdd") ? AnsiString("sysdba") : Usuario->Text.Trim();
compila bien.
Si, por que cuando escribes
Código PHP:
   ... ? AnsiString("sysdba") : ... 
estas construyendo una instancia de la clase AnsiString desde la constante literal.

Y del mismo modo funciona si aplicas un moldeo:
Código PHP:
  ... ? (AnsiString)"sysdba" : ... 
Vale aclarar que la constante de cadena es interpretada por el compilador C++ Builder como un arreglo de caracteres terminado en nulo.

Para ejemplificar, la constante "sysdba" es interpretada como char[7], cosa que podes comprobar fácilmente:
Código PHP:
#include <typeinfo>
...
{
  
AnsiString User  "sysdba";
  
TVarRec vr[3];

  
vr[0] = typeid(User).name();
  
vr[1] = '\n';
  
vr[2] = typeid("sysdba").name();

  
ShowMessage(Format("User es tipo: %s %s""sysdba"" es tipo: %s"vr3));

Saludos
__________________
Daniel Didriksen

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