 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Luis Anibal Lt


Registrado: 12 Nov 2002Mensajes: 84Ubicación: Santiago del Estero, Argentina
|
Publicado: Jue 26 Abr, 2012 3:39 am Asunto: MessageBox en XE |
|
|
Porque este codigo, que funcionaba en BCB6 no lo hace en XE ??
//---------------------------------------------------------------------------
bool PregSiNo( AnsiString texto, AnsiString titulo )
{
return Application->MessageBox(texto.c_str(), titulo.c_str(),
MB_ICONQUESTION | MB_YESNO) == IDYES;
}
//---------------------------------------------------------------------------
void Aviso( AnsiString texto, AnsiString titulo )
{
Application->MessageBox( texto.c_str(), titulo.c_str(),
MB_ICONINFORMATION | MB_OK );
}
//---------------------------------------------------------------------------
void AvisoError( AnsiString texto, AnsiString titulo )
{
if ( texto.Length() > 0 )
{
Application->MessageBox( texto.c_str(), titulo.c_str(),
MB_ICONEXCLAMATION | MB_OK );
Abort();
}
}
me da errores en la compilacion ...
entonces lo he convertido en esto
//---------------------------------------------------------------------------
void Aviso( AnsiString texto, AnsiString titulo )
{
wchar_t *tex, *tit;
tex = texto.WideChar(tex, texto.WideCharBufSize());
tit = titulo.WideChar(tit, titulo.WideCharBufSize());
Application->MessageBox( tex, tit, MB_OK );
// MB_ICONINFORMATION | MB_OK );
}
PERO ...
igualmente, al ejecutar me da un Access Violation at address ...
Desde ya, gracias por vuestra atencion _________________ Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Jue 26 Abr, 2012 7:34 am Asunto: |
|
|
Cambia en la declaración de las funciones "AnsiString" por "String". Así estarás usando UnicodeString en las versiones que lo soportan, o AnsiString en las que no.
Busca mas información sobre UNICODE, en el foro se ha hablado del tema cuando salio la primera versión que trajo estos cambios (la 2009), y también en la web de Embarcadero hay artículos hablando de los cambios, e incluso en la ayuda. |
|
| Volver arriba |
|
 |
Luis Anibal Lt


Registrado: 12 Nov 2002Mensajes: 84Ubicación: Santiago del Estero, Argentina
|
Publicado: Vie 27 Abr, 2012 12:43 am Asunto: |
|
|
Amigos,
Sigo las instrucciones de _Leo, buscando en el foro.
Tambien he googleado, pero todo lo que me aparece esta' dirigido a versiones anteriores, ergo, doy vueltas en lo mismo.
Encontre' ejemplos de MessageBox para la version XE del Builder, pero, en vez de utilizar variables, aparecen constantes de la forma L"mensaje" ...
Uso el BCB desde su version inicial, siempre he hecho uso y abuso de lo que el entorno y las VCL permiten, sin "descender", manteniendome, por llamarlo asi, en sobrevolando en niveles superiores.
Lejos estoy de pretender conseguir el trabajo hecho, pero, si me ayudan a "apuntar" hacia algo que me deje CERCA del objetivo ... o sea, algun enlace, un ejemplo ...
Gracias.  _________________ Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com |
|
| Volver arriba |
|
 |
Luis Anibal Lt


Registrado: 12 Nov 2002Mensajes: 84Ubicación: Santiago del Estero, Argentina
|
Publicado: Vie 27 Abr, 2012 1:44 am Asunto: |
|
|
He aqui la simple y sencilla solucion ...
//---------------------------------------------------------------------------
void Aviso( String texto, String titulo )
{
Application->MessageBox( texto.w_str(), titulo.w_str(),
MB_ICONINFORMATION | MB_OK );
}
o sea .w_str() sumado a la declaracion de String en vez de AnsiString solucionaron el problema.
Es como decia _Leo, habia que buscar, aunque el no obtener resultados motivo' mi mensaje anterior.
JA JA !! hice catarsis y al poco rato "encontre" la solucion. _________________ Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Vie 27 Abr, 2012 1:57 am Asunto: |
|
|
Yo te decia que cambiaras la declaración de AnsiString por String, sin tocar nada mas, que teóricamente debería de haberte funcionado al menos hasta la versión 2010 que es la que uso.
Lo siguiente que ponía de buscar lo decía como complemento, no para solucionar este problema, sino para conocer un poco mas sobre estos cambios. |
|
| Volver arriba |
|
 |
Luis Anibal Lt


Registrado: 12 Nov 2002Mensajes: 84Ubicación: Santiago del Estero, Argentina
|
Publicado: Vie 27 Abr, 2012 10:13 am Asunto: |
|
|
_Leo,
Cambie' por String, como dijiste, pero no alcanzaba, luego vi por ahi un pedazo de texto con el w_str() y se termino' de cerrar el circulo.
Todo el problema parte de mi DESCONOCIMIENTO del lenguaje en sus caracteristicas mas "bajas", por eso es que en ocasiones circulo por callejones estrechos, donde no se' si hay salida.
Lo que tu contestaste estuvo muy bien y lo agradezco, a fin de cuentas, fue lo que me llevo a encontrar la mencionada salida.
Saludos. _________________ Luis Anibal Mendez
Analisis, Programacion, Asesoramiento
luisanibalmendez@gmail.com |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|