Exacto Antonio, si la variable es de tipo caracter, pulsas en el teclado y no borra lo anterior, y si es de tipo numérico, cada vez que escribes un dígito borra lo anterior, con lo cual es el efecto que tu indicas. Yo lo que busco es que sobre una variable numerica, poder escribir un número cualquiera, no sólo un dígito.
Un Saludo,
Envio Teclas a un Get
-
- Posts: 297
- Joined: Fri Apr 14, 2006 5:52 pm
- Location: Córdoba (España)
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Envio Teclas a un Get
Antonio,
Alguns otra opción? me tope con esta necesidad en el sistema que desarrollo, tengo una vvariable de tipo numerico con picture "999.99" pero me hace lo mismo que a mike, pulso cualquier tecla, le envio el numero, pero siempre, borra el numero y deja el ultimo pulsado, ej: si quiero escribir 15, envio primero el "1" y si lo pone, pero al enviar el "5" me quita el "1" y me deja unicamente el "5", otro caso, si quiero poner 5.5 pongo bien el "5" y al enviar el "." este no funciona
alguien que me pueda orientar con una variable numerica ? con las de tipo caracter todo va de maravilla ...
gracias
paco
Alguns otra opción? me tope con esta necesidad en el sistema que desarrollo, tengo una vvariable de tipo numerico con picture "999.99" pero me hace lo mismo que a mike, pulso cualquier tecla, le envio el numero, pero siempre, borra el numero y deja el ultimo pulsado, ej: si quiero escribir 15, envio primero el "1" y si lo pone, pero al enviar el "5" me quita el "1" y me deja unicamente el "5", otro caso, si quiero poner 5.5 pongo bien el "5" y al enviar el "." este no funciona
![Sad :-(](./images/smilies/icon_sad.gif)
gracias
paco
____________________
Paco
Paco
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
Re: Envio Teclas a un Get
dejo el trozo de codigo:
gracias
paco
Code: Select all | Expand
DEFINE DIALOG oDlg .......
REDEFINE GET aoObjetos[1] ;
VAR nDescto ;
ID 101 OF oDlg ;
PICTURE "999.99" ;
UPDATE
REDEFINE BTNBMP oBtn[ 1] PROMPT "1" ID 201 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("1") )
REDEFINE BTNBMP oBtn[ 2] PROMPT "2" ID 202 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("2") )
REDEFINE BTNBMP oBtn[ 3] PROMPT "3" ID 203 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("3") )
REDEFINE BTNBMP oBtn[ 4] PROMPT "4" ID 204 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("4") )
REDEFINE BTNBMP oBtn[ 5] PROMPT "5" ID 205 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("5") )
REDEFINE BTNBMP oBtn[ 6] PROMPT "6" ID 206 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("6") )
REDEFINE BTNBMP oBtn[ 7] PROMPT "7" ID 207 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("7") )
REDEFINE BTNBMP oBtn[ 8] PROMPT "8" ID 208 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("8") )
REDEFINE BTNBMP oBtn[ 9] PROMPT "9" ID 209 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("9") )
REDEFINE BTNBMP oBtn[10] PROMPT "0" ID 210 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar("0") )
REDEFINE BTNBMP oBtn[11] PROMPT "Borrar" ID 211 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), nDescto:=0, aoObjetos[1]:Refresh() )
REDEFINE BTNBMP oBtn[12] PROMPT "Enter" ID 212 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), lOk:=.T., oDlg:End() )
REDEFINE BTNBMP oBtn[13] PROMPT "." ID 213 OF oDlg ACTION ( aoObjetos[1]:SetFocus(.T.), SysRefresh(), aoObjetos[1]:KeyChar(".") )
ACTIVATE DIALOG oDlg CENTERED
gracias
paco
____________________
Paco
Paco
Re: Envio Teclas a un Get
Hola Francisco:
Yo tengo un envio de numeros mediante botones a un Get, lo hago todo mas manual pero a mi me funciona. El codigo es el siguiente:
La Procedure CerrPunt11 quita lo que hay en pantalla y crea la ventana con los botones numéricos, del punto para decimales y la tecla de borrar el último número introducido, tambien está el Get donde se escribe, dos Say uno del total de un tique y otro el de la devolución que hay que hacerle y dos botones uno de continuar y otro de regresar. La procedure Bot5Punt es la que evalua el boton que has pulsado y realiza el cambio de cifra y actualiza los campos. Por último la procedure CerrPunt111 es la que actualiza la devolución. Espero que te sirva.
Yo tengo un envio de numeros mediante botones a un Get, lo hago todo mas manual pero a mi me funciona. El codigo es el siguiente:
La Procedure CerrPunt11 quita lo que hay en pantalla y crea la ventana con los botones numéricos, del punto para decimales y la tecla de borrar el último número introducido, tambien está el Get donde se escribe, dos Say uno del total de un tique y otro el de la devolución que hay que hacerle y dos botones uno de continuar y otro de regresar. La procedure Bot5Punt es la que evalua el boton que has pulsado y realiza el cambio de cifra y actualiza los campos. Por último la procedure CerrPunt111 es la que actualiza la devolución. Espero que te sirva.
Code: Select all | Expand
Procedure CerrPunt11()
tDlg013:End()
@140*ProporV,200*ProporH SAY tDlg013 VAR LocaText(185,4) OF oDlgwVen PIXEL COLOR escri3, fondo3 FONT oFont SIZE 365*ProporH,xProPorV*ProPorV CENTER BORDER
oDlgwVe3:Hide()
oDlgwVe3:Destroy()
CreaVen3(510,500)
xIniBot = (xLar - 150) / 2
@ 10*ProporV, 10*ProporH SAY tDlg060 VAR LocaText(189,7) OF oDlgwVe3 PIXEL COLOR escri1, fondo1 FONT oFon02 SIZE 480*ProporH,2.5*xProPorV*ProPorV CENTER
@ 60*ProporV, 10*ProporH SAY tDlg061 VAR LocaText(190,5) OF oDlgwVe3 PIXEL COLOR escri1, fondo1 FONT oFon02 SIZE 300*ProporH,2.5*xProPorV*ProPorV
@110*ProporV, 10*ProporH SAY tDlg062 VAR LocaText(190,6) OF oDlgwVe3 PIXEL COLOR escri1, fondo1 FONT oFon02 SIZE 300*ProporH,2.5*xProPorV*ProPorV
@160*ProporV, 10*ProporH SAY tDlg063 VAR LocaText(190,7) OF oDlgwVe3 PIXEL COLOR escri1, fondo1 FONT oFon02 SIZE 300*ProporH,2.5*xProPorV*ProPorV
@ 60*ProporV,220*ProporH SAY gDlg060 VAR totvent OF oDlgwVe3 PIXEL COLOR escri3, fondo3 FONT oFon02 SIZE 267*ProporH,2.5*xProPorV*ProPorV CENTER BORDER PICT xpicpre
@160*ProporV,220*ProporH SAY gDlg061 VAR devvent OF oDlgwVe3 PIXEL COLOR fondo3, escri3 FONT oFon02 SIZE 267*ProporH,2.5*xProPorV*ProPorV CENTER BORDER PICT xpicpre
@110*ProporV,220*ProporH GET gDlg062 VAR entvent OF oDlgwVe3 PIXEL COLOR escri2, fondo2 FONT oFon02 SIZE 267*ProporH,2.5*xProPorV*ProPorV CENTER NOBORDER PICT xpicpre valid CerrPunt111()
@220*ProPorV,110*ProPorH BUTTON xPul60 PROMPT LocaText(103,1) OF oDlgwVe3 PIXEL SIZE 140*ProPorH,40*ProPorV FONT oFon02 ACTION CerrPunt112()
@220*ProPorV,260*ProPorH BUTTON xPul61 PROMPT LocaText(190,8) OF oDlgwVe3 PIXEL SIZE 140*ProPorH,40*ProPorV FONT oFon02 ACTION CerrPunt101()
@270*ProPorV,175*ProPorH BUTTON xPul62 PROMPT "&1" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(1)
@270*ProPorV,235*ProPorH BUTTON xPul63 PROMPT "&2" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(2)
@270*ProPorV,295*ProPorH BUTTON xPul64 PROMPT "&3" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(3)
@330*ProPorV,175*ProPorH BUTTON xPul65 PROMPT "&4" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(4)
@330*ProPorV,235*ProPorH BUTTON xPul66 PROMPT "&5" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(5)
@330*ProPorV,295*ProPorH BUTTON xPul67 PROMPT "&6" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(6)
@390*ProPorV,175*ProPorH BUTTON xPul68 PROMPT "&7" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(7)
@390*ProPorV,235*ProPorH BUTTON xPul69 PROMPT "&8" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(8)
@390*ProPorV,295*ProPorH BUTTON xPul70 PROMPT "&9" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(9)
@450*ProPorV,175*ProPorH BUTTON xPul71 PROMPT "&0" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(0)
@450*ProPorV,235*ProPorH BUTTON xPul72 PROMPT "&." OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(10)
@450*ProPorV,295*ProPorH BUTTON xPul73 PROMPT "Bor" OF oDlgwVe3 PIXEL SIZE 50*ProPorH,50*ProPorV FONT oFon02 ACTION Bot5Punt(11)
gDlg062:SetFocus()
RETURN( NIL )
Procedure Bot5Punt(xOpc)
xOp = gDlg062:nPos()
if xOpc = 11
xOpc = 0
do case
case xOp = 1
entvent = xOpc
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(10)}
gDlg062:SetFocus()
case xOp = 12
xentvent = val(substr(str(entvent,12,2),12,1))
entvent = int(entvent) + (0.1*xOpc) + (xentvent * 0.01)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(11)}
gDlg062:SetFocus()
case xOp = 13
xentventa = val(substr(str(entvent,12,2),11,1))
entvent = int(entvent) + (xentventa * 0.1) + (0.01*xOpc)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(12)}
gDlg062:SetFocus()
otherwise
xentventa = val(substr(str(entvent,12,2),11,2))
entvent = int(entvent/10) + (xentventa * 0.01)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(10)}
gDlg062:SetFocus()
endcase
else
if xOpc <> 10
if xOp = 1
entvent = xOpc
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(10)}
gDlg062:SetFocus()
else
if xOp > 10
if xOp = 11
xentvent = val(substr(str(entvent,12,2),12,1))
entvent = int(entvent) + (0.1*xOpc) + (xentvent * 0.01)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(12)}
gDlg062:SetFocus()
else
xentventa = val(substr(str(entvent,12,2),11,1))
entvent = int(entvent) + (xentventa * 0.1) + (0.01*xOpc)
CerrPunt111()
gDlg062:Refresh()
xPul60:SetFocus()
endif
else
if entvent * 10 > 999999999
entvent = int(entvent) + (0.1*xOpc)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(12)}
gDlg062:SetFocus()
else
xentvent = val(substr(str(entvent,12,2),11,2))
entvent = (int(entvent) * 10) + xOpc + (xentvent * 0.01)
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(10)}
gDlg062:SetFocus()
endif
endif
endif
else
CerrPunt111()
gDlg062:bGotFocus = {| | gDlg062:SetPos(11)}
gDlg062:SetFocus()
endif
endif
RETURN (NIL)
Procedure CerrPunt111()
devvent = (totvent - entvent) * (-1)
gDlg061:Refresh()
RETURN( .T. )
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es
Nunca se termina de aprender, por eso necesito siempre ayuda.
-
- Posts: 845
- Joined: Sun Oct 09, 2005 5:36 pm
- Location: la laguna, mexico.
-
- Posts: 6
- Joined: Tue Sep 23, 2014 5:22 am
- Location: Kochi, India
- Antonio Linares
- Site Admin
- Posts: 42451
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Has thanked: 20 times
- Been thanked: 58 times
- Contact:
Re: Envio Teclas a un Get
Windows API provides the function SendInput() for both keyboard and mouse:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput
And the function mouse_event() just for the mouse events:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
Also you can send a message WM_LBUTTONDOWN etc to any control
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput
And the function mouse_event() just for the mouse events:
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
Also you can send a message WM_LBUTTONDOWN etc to any control