ayuda con inkey()

Post Reply
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

ayuda con inkey()

Post by Gerardo Farfan »

resulta que en clipper (modo DOS) me funciona el siguiente ejemplo:

proceso:=iif(inkey(5)=171,"A","B")

pero en fivewin siempre me manda a "B".

esto lo uso cuando, desde el menu se selecciona x opcion y espera 5 seg a que se precione ALT+171, para hacer x o si no se presiona nada haga y , pero no me da el mismo resultado que clipper puro.

por su ayuda muchas gracias.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gerardo,

Inkey() no se usa en FiveWin.

Abres una ventana desde esa opción del menú ? O una caja de diálogo ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

Antonio:

Efectivamente, abro desde una opcion del menu un dialogo con cierta informacion dependiendo si el usuario presiono Alt+171, de lo contrario muestro otro tipo de informacion.


gracias.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gerardo,

Le has asignado el acelerador Alt+171 ( ½ ) a una opción del menú ?

Como lo pulsa el usuario ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Gerardo Farfan
Posts: 52
Joined: Fri Oct 28, 2005 3:42 pm
Location: Mexico, D.F.

Post by Gerardo Farfan »

el usuario lo usa asi

entra a la opcion del menu de ventas (por decir algo) y a la opcion ventas,
aqui espera 5 seg. a que el usuario presione Alt+171 para que haga una remision (y no calcule impuestos), si el usuario no tecleo nada, entonces se hara una factura (calculando sus respectivos impuestos).

puedo mandarte a tu correo privado el porque necesito esto???

de antemano muchas gracias
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gerardo,

Y no es más simple preguntarle directamente ?

Code: Select all

If MsgYesNo( "¿ Quiere factura ?" ) 
   ...
else
   ...
endif
regards, saludos

Antonio Linares
www.fivetechsoft.com
manuramos
Posts: 219
Joined: Mon Dec 26, 2005 7:25 pm
Location: Jerez de la Frontera (Spain)

Post by manuramos »

Gerardo, porqué no sustituyes la opción de ventas por dos:

- OPCION DE VENTA SIN CALCULO DE IMPUESTO
- OPCION DE VENTAS CON CALCULO DE IMPUESTO.

O el título que tu veas. Es que en Windows el evento de captura del teclado no se gestiona como se hacía en MS-DOS. Supongo que habrás un buffer intermedio de teclado, pero ten en cuanta que en Windows, el fluo del programa no se detiene en un punto concreto del código fuente, entonces ¿dónde le ordenarías al programa que revise el teclado?

Se me ocurre que quizá podría utlilizar esto al principio del módulo (primer códio tras pulsar la opción):

SysWait( 50 )
IF GetKeyState( VK_CONTROL )
...
PROCESO PREPARATORIO CALCULO DE IMPUESTOS
...
ENDIF

Si el usuario pulsó "CONTROL" al entrar en el módulo de ventas, se bifurcaría por ahí.


Si quieres controlar ALT+171, tendrás que systutiuir GetKeyState( VK_CONTROL ) por GetKeyState( valor de la tecla ALT+171 )

Un saludo.
Nos Gusta Programar
Post Reply