Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   Mensaje personalizado con MessageBoxA (https://www.clubdelphi.com/foros/showthread.php?t=74292)

mizzard 09-06-2011 23:27:38

Mensaje personalizado con MessageBoxA
 
Hola a todos, os comento mi problemilla:

Uso C++Builder 2010 y me gustaría indicar un mensaje detallado usando Application->MessageBoxA.

En concreto de forma genérica muestro lo siguiente:

Código:

Application->MessageBoxA(L"No se puede realizar la compra",L"Error",MB_OK+ MB_ICONERROR);
Y me gustaría ponerlo de la siguiente forma:

Código:

AnsiString cadena1 = frmMain->StrGridTique->Cells[0][contFila];
AnsiString cadena2 = frmMain->DBTStock->Caption;

Application->MessageBoxA(L"No se puede realizar la compra debido a que el stock de " + cadena1 + L" es de " + cadena2 + L".",L"Error",MB_OK+ MB_ICONERROR);

El problema que me surge es que me salta el error:

Cannot convert 'UnicodeString' to 'const wchar_t *'

En el caso de querer sumar dos cadenas tal como esto y simplificando el problema:

Application->MessageBoxA(L"Error" + L"Error" ,L"Error",MB_OK+ MB_ICONERROR);

Me surge un error en el +:

Invalid pointer addition

Por lo que deduzco que deberia poner todo el String dentro del AnsiString y mostrarlo en el mensaje.... pero vuelvo a tener el primer problema...

Alguna idea de como poder hacer lo que quiero???

Muchas gracias y un saludo!

escafandra 09-06-2011 23:51:04

El problema es que MessageBox no acepta AnsiString como parámetros sino w_chart*, por lo tanto deber realizar la conversión con c_str().

Debes hacer algo como esto:

Código:

String cadena1 = frmMain->StrGridTique->Cells[0][contFila];
String cadena2 = frmMain->DBTStock->Caption;
String MSG = L"No se puede realizar la compra debido a que el stock de " + cadena1 + L" es de " + cadena2 + L".";
Application->MessageBoxA(MSG.c_str(), L"Error", MB_OK | MB_ICONERROR);

Saludos.

mizzard 10-06-2011 00:08:21

Muchas gracias, ese era el problema :D


Un saludo!


La franja horaria es GMT +2. Ahora son las 06:27:24.

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