Envio Teclas a un Get

Re: Envio Teclas a un Get

Postby Mike Serra » Tue Oct 18, 2011 2:57 pm

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,
Mike Serra
 
Posts: 297
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Re: Envio Teclas a un Get

Postby Francisco Horta » Mon Dec 26, 2011 10:15 pm

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
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Envio Teclas a un Get

Postby Francisco Horta » Mon Dec 26, 2011 10:27 pm

dejo el trozo de codigo:
Code: Select all  Expand view  RUN

   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
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Envio Teclas a un Get

Postby colthop » Tue Dec 27, 2011 11:06 am

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 view  RUN
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.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: Envio Teclas a un Get

Postby Francisco Horta » Wed Dec 28, 2011 6:47 pm

colthop
gracias
arreglado.
salu2
paco
____________________
Paco
Francisco Horta
 
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Re: Envio Teclas a un Get

Postby sreerajklm » Wed Mar 17, 2021 8:40 am

programmatically how to fire mouse button click in windows os via fivewin
sreerajklm
 
Posts: 6
Joined: Tue Sep 23, 2014 5:22 am
Location: Kochi, India

Re: Envio Teclas a un Get

Postby Antonio Linares » Thu Mar 18, 2021 8:38 am

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
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42126
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 63 guests