Discusiones sobre Productos NI

cancelar
Mostrando los resultados de 
Buscar en lugar de 
Quiere decir: 

fflush en Labwindows CVI

Hola a todos,

hay alguna función que suplante al fflush(stdin) en LabWindows CVI?

El problema es que en mi programa uso el GenericMessagePopup( ), y a veces antes de la llamada a esta función (sin querer) apreto la tecla de <Return> y por eso el GenericMessagePopup( ) entra con la primera opción.

Trate de solucionar esto con el fflush( stdin), pero no veo que el buffer sea vaciado.

Gracias por toda respuesta.

Abel.

0 kudos
Mensaje 1 de 4
2.916 Vistas

Hola,

yo nunca encontré similar problema, pero creo que podrías vaciar el buffer del teclado antes de emitir el popup con un pequeño loop hasta que getchar () retorne EOF (-1)

 

En alternativa, si tienes en el popup una opción para 'Anular, 'Abandonar' u similar puedes configurar el GenericMessagePopup para que éste sea el comando activo y añadir un popup de confirmación en este caso, de manera que aunque se llegue al mensaje con un Enter en el buffer del teclado, se visualice automaticamente el pedido de confirmación: si el problema es que el usuario es demasiado rápido en pulsar en el teclado, aprenderá en poco tiempo a dejar un poco de tiempo entre una acción y la otra Guiño



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
Mensaje 2 de 4
2.915 Vistas

Hola Roberto,

como siempre gracias por la respuesta.

lo que hago en mi programa es lo siguiente:

 

 PromptPopup ("EVAPROD", "Introduzca el Número Serie!", sernum, 10);

 

n=GenericMessagePopup("Question", "Bootsektor laden?", "Ja", "Nein","", 0, 1, 0, 2,2,2);

 

como dije, a veces ocurre de que cuando se introduce el número serie, al finalizar sin querer se apreta dos veces el <Return>.

No entendí muy bien eso del Loop y getchar();  lo que se introduce en el PromptPopup() tambien se vá al buffer del teclado?

 

Saludos.

Abel.

0 kudos
Mensaje 3 de 4
2.913 Vistas

No, lo que se introduce en el PromptPopup no queda en el buffer del teclado. Lo que entendía yo era algo así:

 

PromptPopup ( ... );

Almacenar lo que el usuario escribió (el primer Enter ya fue sacado del buffer)

while (getchar () != EOF) ;    // Vaciar el buffer del teclado

GenericMessagePopup ( ... ) ;   // Emitir mensaje

 

Creo que podría funcionar pero sinceramente nunce me encontrè en una situación parecida.



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
Mensaje 4 de 4
2.911 Vistas