LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

varios paneles

hola
necesito saber como debo de configuarar en labwindow, para tener un panel principal siempre visible, que sería como un tapiz, en el cual tendria un barra de menus, al acceder a cada menu se abriría un panel, que permanecera visible hasta que lo cierre, pudiendo abrir varios a la vez,  e incluso que mediante cambios en botones de un panel, pueda modificar leds o graficas en los otros paneles abiertos.
Comopuedo hacer eso?.Ya que de lamanera que lo tengo al abrir un panel,los demas dejan de ser visibles y ademas no puedo interactuar entre ellos
 
gracias
0 Kudos
Message 1 of 7
(3,697 Views)

Hola escarpa,

si he entendido bien tu problema creo que podrías solucionarlo con la idea de los paneles "hijos", esto es paneles cargados dentro un panel "padre" (que bien podría ser tu panel principal) y que pueden ser movidos dentro de los límites de tal panel, siendo siempre visibles y pudiendo actuar de manera independiente en ellos.

Te aconsejo que mires al ejemplo panels.prj (lo encuentras en la carpeta samples\userint en la carpeta del CVI) para comprender mejor lo que te estoy diciendo. En la misma carpeta puedes mirar al ejemplo menus.prj para ver cómo se manejan los menus en el CVI.

Por último te comento que entre los foros de NI existe uno para hispanohablantes en el que puedes encontrarte a gusto si prefieres no hablar en inglés, que es la lengua casi universal de este foro.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 2 of 7
(3,692 Views)
gracias, pero mi verdadero problema es el siguiente, En un panel mediante un control vario una variable, la cual quiero ir apuntando en otro panel distinto en una tabla, la cosa es que nose como estar trabajando en un panel y actualizar datos en otro ala vez. me entienedes? muchas gracias.
0 Kudos
Message 3 of 7
(3,678 Views)
de hecho creo que el problema viene a raiz de que tengo varios ficheros .c dentro del proyecto y creo que de alguna manera no los está linkando bien, ya que si las funciones las pongo dentro de un mismo .c si que varia los datos.
0 Kudos
Message 4 of 7
(3,676 Views)

DIvidiendo la fuente en diferentes archivos tienes el problems de la declaración de las variables: si las declaras en una de las fuentes, estas serán visibles solamente por las funciones presente en aquel archivo y no seran visibles en otras fuentes aunque las declares en estas (de hecho sono variables independientes sin relación alguna entre sí aunque tengan el mismo nombre); si has cargado los panels en diferentes archivos C, los handles no serán visibles a todas las fuentes, por lo que cuando usas el SetCtrlVal de un control que está en un panel cargado en otro archivo C, no tienes el panel handle correspondiente, por lo que la función falla (lo puedes comprobar poniendo un break antes de la función y viendo el valor del panel handle: si mi idea es correcta tendrá el valor cero).

Para salir de este problema puedes declarar las variables como extern en los otros archivos, u declararlas una sola vez en un archivo .H que incluyes en todas las fuentes. Si declaras en esta manera los panel handles, estos serán visibles en todos los archivos fuentes y podrás maniobrar controles situados en paneles cargados en archivos diferente sin problemas.

Espero haberme esplicado bien, no es fácil para mi hablar de temas tan técnicos en español: si tienes problemas dímelo y yo intentaré aclarar tus dudas.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 5 of 7
(3,670 Views)
muchas gracias, te explicas muy bien, si prefieres hacerlo en inglés puedes, no hay problema. Pues veras, lo hago exactamente como tu dices, tengo todas las variables declaradas en un .h, y por eso no sé por qué no funciona.
Para que te hagas una idea, yo con un SetCrtVal cojo el valor de un panel y lo pongo en la variable que esta declarada en un punto.h y desde ese panel actualizo la tabla de otro panel...es decir, estando en el panel4, cojo la variable y la escribo en la tabla del panel5, todo ello estando en el panel4, no entiendo muy bien por qué no funciona.

muchas gracias por tu atención.
0 Kudos
Message 6 of 7
(3,657 Views)

Bueno, primero comentarte que para leer un valor de un control se utiliza el GetCtrlVal, no el SetCtrlVal que indicas tú.

Lo único que se me ocurre es que pongas un breakpoint después de leer el dato y otro antes del escribir el dato en el otr panel y mires a las variables que utilizas para almacenar el dato y para lo panel handles: todas estas deben estar listadas en la sección "Globals" de la ventana de las variables (parte superior), y ninguna debe tener valor nulo. Si hay alguna variable listada en otras secciones de la lista esto indica que no està definida como global, mientras que si hay alguna en cero esto significa que no fue correctamente escribida a su tiempo.



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 7 of 7
(3,653 Views)