Hola.
Cita:
Empezado por Angel.Matilla
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", vr, 3));
}
Saludos