Page 2 of 2

Re: Envio Teclas a un Get

Posted: Tue Oct 18, 2011 2:57 pm
by Mike Serra
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,

Re: Envio Teclas a un Get

Posted: Mon Dec 26, 2011 10:15 pm
by Francisco Horta
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

Re: Envio Teclas a un Get

Posted: Mon Dec 26, 2011 10:27 pm
by Francisco Horta
dejo el trozo de codigo:

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

Re: Envio Teclas a un Get

Posted: Tue Dec 27, 2011 11:06 am
by colthop
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.

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. )

Re: Envio Teclas a un Get

Posted: Wed Dec 28, 2011 6:47 pm
by Francisco Horta
colthop
gracias
arreglado.
salu2
paco

Re: Envio Teclas a un Get

Posted: Wed Mar 17, 2021 8:40 am
by sreerajklm
programmatically how to fire mouse button click in windows os via fivewin

Re: Envio Teclas a un Get

Posted: Thu Mar 18, 2021 8:38 am
by Antonio Linares
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