Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Mostrar label en messagebox (https://www.clubdelphi.com/foros/showthread.php?t=86146)

eennzzoo 22-06-2014 19:54:08

Mostrar label en messagebox
 
Hola, tengo este if
Código:

if (Application->MessageBox(("Desea borrar los datos de " lblApellido->Caption.c_str() " " lblNombre->Caption.c_str() " ?",L"AVISO",MB_YESNO | MB_ICONQUESTION)==IDYES) {

}

Esa parte me tira error en el c++ Builder XE4

Pero en el c++ builder 5 tengo esta parte y no me tira error

if (MessageBox(0,("Desea borrar los datos de " + lblApellido->Caption+" "+lblNombre->Caption+" ?").c_str(),"AVISO",MB_YESNO | MB_ICONQUESTION)==IDYES) {

}

Gracias

escafandra 22-06-2014 20:31:38

Como ves, el tratamiento de cadenas que haces no tiene nada que ver en ambos casos. Tu primer ejemplo no compilará pues no puedes sumar cadenas estilo C, es más, ni siquiera colocas el operador +
Debes trabajar con String para podes concatenar las cadenas.

No se si Builder XE4 funciona nativamente con Unicode, si no es así, tu código debería quedar así:
Código:

if (Application->MessageBox((String("¿Desea borrar los datos de ")+ lblApellido->Caption+ " " + lblNombre->Caption + " ?").c_str(), "AVISO", MB_YESNO | MB_ICONQUESTION)==IDYES) {

}

En caso Unicode, añade una L a cada cadena C.


Saludos.

eennzzoo 22-06-2014 20:56:45

Cita:

Empezado por escafandra (Mensaje 478211)
Como ves, el tratamiento de cadenas que haces no tiene nada que ver en ambos casos. Tu primer ejemplo no compilará pues no puedes sumar cadenas estilo C, es más, ni siquiera colocas el operador +
Debes trabajar con String para podes concatenar las cadenas.

No se si Builder XE4 funciona nativamente con Unicode, si no es así, tu código debería quedar así:
Código:

if (Application->MessageBox((String("¿Desea borrar los datos de ")+ lblApellido->Caption+ " " + lblNombre->Caption + " ?").c_str(), "AVISO", MB_YESNO | MB_ICONQUESTION)==IDYES) {

}

En caso Unicode, añade una L a cada cadena C.


Saludos.

Ahora si funciona de esa forma. Gracias.


La franja horaria es GMT +2. Ahora son las 18:25:53.

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