Page 1 of 1

Como fazer isso com FIVEWIN?

Posted: Thu Dec 13, 2007 4:32 pm
by FWHISHOW
do while .t.
cBanda := ""

do while .t.
tk := inkey(0) <-- Como substituir com o FWH?
if tk == 27 .or. tk == 58 .or. tk == 128 .or. tk == 135
exit
elseif chr(tk) $ "0123456789"
cBanda += chr(tk)
endif
enddo

do while inkey(0.1) != 0; enddo <-- Como substituir com o FWH?

if tk == 27
return
endif

if len(cBanda) == 30
keyb cBanda
return
endif

enddo


Meus sinceros agradecimentos a quem puder ajudar!

Posted: Thu Dec 13, 2007 7:46 pm
by Antonio Linares
La función Inkey() no se usa en Windows ni en FWH. Inkey() tiene sentido en MsDos en donde la ejecución es modal, pero no tiene sentido en Windows, en donde la aplicación nunca se puede "detener", ó bloquearía todo Windows.

El objeto que tenga el foco recibirá los eventos de teclado y puedes analizarlos usando <oControl>:bKeyDown ó <oControl>:bKeyChar. Si no tienes controles definidos, pues usarías <oDialog> ó <oWindow> en vez de <oControl>

Posted: Thu Dec 13, 2007 7:48 pm
by Antonio Linares
Explica lo que intentas hacer.

Un lector de código de barras ?

Posted: Thu Dec 13, 2007 8:06 pm
by FWHISHOW
Gracias Antonio, o que desejo fazer é capturar a leitura de um leitor de cheques, conectado a PS2.

Ou seja uma dialog que fica esperando passar o cheque no leitor, e quando isso acontecer deve fechar a dialog. Bom resolvi temporariamente colocando um get na dialog, porém, não é o que eu queria pois não quero deixar a pessoa ter acesso a digitar.

como fiz:

cBanda := ""
DEFINE DIALOG oMFW RESOURCE "LEITURADECHEQUES" TITLE "Cheques pela Banda ICON OICO FONT ownd:ofont
REDEFINE GET oLeget var nVarLe id 4004 of oMFW VALID !EMPTY(nVarLe) .and. (lLido:=.t.,oMFW:end(),.t.)
REDEFINE BUTTONBMP ID 4002 OF oMFW BITMAP "EXIT4" TEXTLEFT ACTION(oMFW:end()) default
oMFW:lHelpicon:=.F.
ACTIVATE DIALOG oMFW centered


gracias Antonio