01-18-2008 01:09 PM
01-18-2008 02:56 PM
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.
01-19-2008 06:20 AM
01-19-2008 06:23 AM
01-19-2008 09:54 AM
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.
01-20-2008 06:46 AM
01-20-2008 09:11 AM
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.