el 02-06-2009 07:13 AM
Hola,
tengo la siguiente pregunta. En mi trabajo utilizamos un programa acabado; lo único que hace este programa es mostrar algunos datos leídos de diferentes aparatos de medición. Las funciones que leen estos datos, las escribo yo. Lo que yo quisiera, es por ejemplo que una de mis funciónes, me muestre un subpanel, en el que pueda realizar diferentes acciones. Lo que quiero es por ejemplo mostrar algunas fotos o propios dibujos, osea resumiendo que mi funcion cree un panel pequeño, el cual pueda seguir programando.
Gracias por cualquier respuesta.
Abel.
el 02-07-2009 03:43 AM
Hola,
estuve experimentando y acerca de mi pregunta hice lo siguiente:
Dentro de mi funcion escribí:
panelHandle2 = LoadPanel (0, "Panel2.uir", PANEL);
DisplayPanel (panelHandle2);
RunUserInterface ();
DiscardPanel (panelHandle2);
esto naturalmente carga otro panel cuando llamo a mi funcion, lo que no sé es cómo vuelvo a mi Panel principal?
Qué exáctamente ocasiona el RunUserInterface (); ,porque quitando esto logro salir del subpanel.
Gracias por toda respuesta.
Abel
02-07-2009 05:46 PM - editado 02-07-2009 05:48 PM
Escrito por oabel5:
panelHandle2 = LoadPanel (0, "Panel2.uir", PANEL);
DisplayPanel (panelHandle2);
RunUserInterface ();
DiscardPanel (panelHandle2);
Bueno, esto ya aclara el lenguaje que estás usando
Como ya has visto, para visualizar casa panel se usa el DisplayPanel; para quitarlo puedes poner en este un botón en cuya función simplemente haya:
int ButtonCallback (int panel, int control, int event, void *callbackData, int eventData1, int evntData2)
{
if (event != EVENT_COMMIT) return 0;
DiscardPanel (panel);
return 0;
}
esto hace que el panel desaparezca del video (y de la memoria también: ya no podràs obrar sobre él ni leer el contenido de sus controles).
Otra manera de hacerlo es asociar una callback al panel y en esta manejar el evento EVENT_DISCARD para quitar el panel presionando el icono rojo en el ángulo superior derecho.
De todas maneras, no es necesario llamar al RunUserInterface más que una vez en toda tu aplicación: este comando abilita el procesamiento de los eventos del usuario, como por elemplo la presión en los botones y usualmente se pone solamente en el main ( ); poner esta instrucción más que una vez puede ingenerar confusión el en programa y un procesamiento incorrecto de los eventos.