04-30-2009 08:31 AM
Muy buenas:
Tengo un problema en el programa que he hecho ayudandome de distintos programas ya creados y me gustaria saber como puedo cambiar el valor al PANEL_STRING_LENGTH de mi programa porque aunque lo he cambiado en la extensión .uir al final siempre me coloca un valor de 10 y me gustaria que aumentara a uno de 11. Gracias y adjunto el programa.
Solved! Go to Solution.
04-30-2009 09:29 AM - edited 04-30-2009 09:33 AM
Hola, si quieres cambiar valor a un control, simplemente debes pasarle el valor correcto; de ninguna manera debes pasar operaciones en el controlID. Esto es: en tu codigo aparece la línea
SetCtrlVal (panel, PANEL_STRING_LENGTH+1, barcodeResult->size );
que es incorrecta. Debes ponerle:
SetCtrlVal (panel, PANEL_STRING_LENGTH , barcodeResult->size + 1);
No puedo testear tu proyecto porque no tengo instalado el vision, pero puedo controlar que PANEL_STRING_LENGTH+1 es el identificativo del control PANEL_CHANNEL2 en tu panel; esto es, con tu instrucción estás pasando el valor a un control diferente al que quieres; si controlas el valor restituido por tu función (poniendo error = SetCtrlVal...) verás que recibes un código de error.
Esto es un elemento muy básico del CVI: el nombre de un control es un identificativo dentro del panel que le acoge, y es traducido en una variable de tipo int (puedes comprobarlo mirando al include asociado a tu archivo uir). En tu caso, PANEL_STRING_LENGHT tiene valor 7; si pones PANEL_STRING_LENGHT+1, pasas al SetCtrlVal el ID 8, que corresponde a un diferente control en tu panel.
05-05-2009 04:58 AM
Muy Buenas Roberto:
Y antes de nada muchas gracias por toda la ayuda prestada, pero en la ultima cuestion que publique en el foro no era realmente lo que yo queria sino que yo pensaba que el STRING_LENGTH afentaba al TEXTBOX, esto es que al poner el valor 11 en el STRING_LENGTH en el TEXTBOX aparecian los 11 ultimos numeros del codigo de barras porque los 2 primeros ya aparecen en los paneles CC_1 y CC_2, pero al llevar a cabo tus explicaciones me ha dado cuenta de que eso no es asi, entonces realmente lo que necesito es que en el TEXTBOX aparezcan los 11 ultimos numeros del codigo de barras.
Y por ultimo tengo un pequeño error, que es mas que nada para que me quede bonito el proyecto, el problema es que yo tengo un interruptor que hace las veces de parada de emergencia, entonces mientras el proceso esta en marcha yo pulso la parada de emergencia y me sale una ventana diciendome lo siguiente:
"!!!! EMERGENCIA ¡¡¡¡\n\
SE HA ACTIVADO LA PARADA DE EMERGENCIA.\n\
PARA DESACTIVARLA PONGALA A LA DERECHA.\n"
Y al desactivar la parada de emergencia lo que me ocurre es que me aparece en pantalla la ventana de DECODE_BARCODE_WINDOW y me gustaria o desactivar las 2 ventanas, esta y la ventana de BARCODE_WINDOW, o que apareciesen las dos porque el hecho de que aparezca solo una queda raro. De verdad que muchas gracias y un saludo.
05-05-2009 08:54 AM
Mikel, no hay manera de hacer lo que quieres en el textbox, ya que los límites (atributos ATTR_MAX_ENTRY_LENGHT y ATTR_MAX_ENTRY_CHARS) solamente se refieren a la posibilidad de imitir texto por parte del usuario (el SetCtrlVal no está afectado por estos atributos). Por esta razón solamente puedes cortar la cadena antes de pasarla al control; una posibilidad es usar el comando StringCopyMax (), aunque hay otras manera de hacerlo tambén.
Por lo que se refiere a los paneles, supongo que estás usando un MessaPopup para emitir tu mensaje; no hay instrucciones dentro de este comando para que automaticamente se visualize otro panel después de pulsar al botón de salida, por lo que debe haber algo en tu código que lo hace; debes averiguar qué pasa después de tu aviso: puedes pones una interrupción (Breakpoint - F9) y ejecutar el código paso a paso con la tecla F8, para ver en qué punto se está emitiendo el nuevo panel (puede ser que en algun momento vayas pasando una variable incorrecta al DisplayPanel u algo así). De esta manera podrás averiguar las condiciones en aquel momento y corregir lo que se necesita para que el programa corra bien.
05-11-2009 04:10 AM
Muchas gracias por la ayuda Roberto:
Hay alguna manera de poder agrandar la ventana de BARCODE_WINDOW por que lo que quiero es que a la hora de ejecutar el programa no aparezca nada por detras de la pantalla de ejecucion, o por lo menos que lo que se vea sea minimo, un estilo a la ejecucion de un programa en una pantalla tactil. Gracias y recibe un cordial saludo.
05-11-2009 04:24 AM
05-12-2009 07:18 AM
Muy buenas Roberto:
Primeramente darte las gracias y pedirte perdon por ser un poco pesado, y en segundo lugar comentarte que al colocar la instruccion que me has dicho me funciona muy bien y me gusta mucho como me queda pero tengo un problemilla, y es que al activar el proceso las vnetanas BARCODE_WINDOW y DECODE_BARCODE_WINDOW se colocan por delante de la pantalla .uir, y ya te digo que me gusta mucho como queda, pero el problema es que al pulsar PAUSE estas dos mismas ventanas, BARCODE_WINDOW y DECODE_BARCODE_WINDOW, pasan a la parte de atras y no tengo ninguna forma de hacerlas volver hacia adelante para que se puedan ver. Entonces mi idea es hacer con alguna instruccion, que al finalizar el proceso donde yo pulso el boton de PAUSE se borren estas dos ventanas para que al pulsar otra vez el boton de START vuelvan a aparecer por delante, o sino la otra solucion que se me ha ocurrido es que al finalizar el proceso de PAUSE con alguna instruccion vuelvan a la parte de adelante para que se puedan visualizar. Y mi duda es si tu sabes alguna instruccion para realizar alguno de estos dos pasos o si sabes para los dos mejor, asi podre probar como es cada uno, o por el contrario si se te ocurre algo mejor dimelo porque estoy abierto a cualquier sugerencia. Gracias.
05-13-2009 07:25 AM
Con referencia a la posición relativa de los paneles en el video tienes dos posibilidades: