| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Dom 19 May, 2019 4:26 pm Asunto: Probema MessageBox y TPanel creado en tiempo de ejecucion |
|
|
Buenas..
He creado un Form(modal) en tiempo de ejecucion de la forma
| Código: | TForm FORM1 = new TForm(this);
FORM1->ShowModal();
|
En un momento dado tengo que abrir un MessageBox, el problema es que desaparece FORM1 y todos sus componenentes y al cerrar el MessageBox, el FORM1 no reaparece...
¿Es incompatible un MessageBox en un componente creado en tiempo de ejecucion o existe alguna solucion para visualizar el Form?
Gracias |
|
| Volver arriba |
|
 |
Felip Master

Registrado: 09 Jun 2004Mensajes: 200
|
Publicado: Dom 19 May, 2019 7:40 pm Asunto: |
|
|
Intenta mantener el formulario en la parte superior:
| Código: |
TForm *FORM1 = new TForm(this);
FORM1->FormStyle = fsStayOnTop;
...
|
|
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 20 May, 2019 6:50 am Asunto: |
|
|
Muchas gracias por contestar...
He probado tu solucion y efectivamente el Form1 no desaparece, pero el problema ahora es que el MessageBox queda debajo del form y no se ve,
¿Alguna idea?
Gracias... |
|
| Volver arriba |
|
 |
Alpinador Lt Cmdr

Registrado: 21 Abr 2014Mensajes: 123
|
Publicado: Lun 20 May, 2019 10:57 am Asunto: |
|
|
si buscas en google por "messageBox rad studio" la primera pagina que sale del Wiki de RIO pone esto (codeexamples)
MessageBox (C++)
Description
The following code causes "stay on top" forms to allow a MessageBox to appear on top. After the message box is closed, the topmost forms are restored so that they continue floating to the top.
| Código: | void __fastcall TForm1::Button1Click(TObject *Sender)
{
Application->NormalizeTopMosts();
#ifdef _DELPHI_STRING_UNICODE
Application->MessageBox(L"This should be on top.", L"Look", MB_OKCANCEL);
#else
Application->MessageBox("This should be on top.", "Look", MB_OKCANCEL);
#endif
Application->RestoreTopMosts();
} |
|
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Lun 20 May, 2019 12:49 pm Asunto: |
|
|
Gracias por contestar...
yo desplego el MessageBox de la forma:
| Código: | if (MessageBox(Handle,"Ese Nombre de Usuario ya esta asignado. Elija otro.","",
MB_OK | MB_ICONERROR)== IDOK)
{
} |
He intentado adaptar el codigo que me has proporcionado a mi cb6 pero no hay manera de que funcione...
¿me puedes Guiar?
Gracias... |
|
| Volver arriba |
|
 |
neg1414 Master

Registrado: 31 Ene 2007Mensajes: 284
|
Publicado: Mar 21 May, 2019 11:24 am Asunto: |
|
|
Buenas..
Efectivamente Alpinador, tenias toda la razon. el codigo funciona perfectamente, al final el problema era mio no del codigo ...
Gracias. |
|
| Volver arriba |
|
 |
Alpinador Lt Cmdr

Registrado: 21 Abr 2014Mensajes: 123
|
Publicado: Mie 22 May, 2019 11:18 am Asunto: |
|
|
| de nada neg..... yo simplemente te puse lo que encontre en el WIKI de embarcadero aunque era de RX RIO..... no se si eso podria afectar ya que como hacen tantos cambios de una version a otra.... pues no se |
|
| Volver arriba |
|
 |
|