Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-06-2011
mizzard mizzard is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 100
Poder: 14
mizzard Va por buen camino
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!
Responder Con Cita
  #2  
Antiguo 09-06-2011
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 10-06-2011
mizzard mizzard is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 100
Poder: 14
mizzard Va por buen camino
Muchas gracias, ese era el problema


Un saludo!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Popup Personalizado Neeruu Varios 5 29-05-2011 01:33:28
Mensaje personalizado sizne OOP 2 29-06-2010 23:40:05
ClientDataSet personalizado diegofhernando OOP 6 17-04-2009 19:38:35
Relleno personalizado MAXIUM Gráficos 2 07-02-2009 17:00:55
Problemas con un cursor personalizado Damisela OOP 2 21-01-2004 15:28:05


La franja horaria es GMT +2. Ahora son las 01:21:18.


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
Copyright 1996-2007 Club Delphi