Ayuda con CLIPBOAR
Ayuda con CLIPBOAR
Hola amigos:
Desearia saber como se puede hacer esto:
Tengo varios GET donde el usuario ingresa valores de monedas
Hice una calculadora de dinero (al ir ingresando la cantidad de monedas y billetes de cada denominacion, se va presentando el valor total de la suma). Esta calculadora la llamo mediante un boton colocado en el dialogo
La pregunta es:
Como puedo devolver el valor total de la suma de dinero al GET que tenia el ultimo foco.
Creo que podria hacer un copia al CLIPBOARD y luego PASTE en el campo pero no se hacer lo primero y lo segundo lo tendria que hacer el usuario, cosa que me gustaria que fuera automatica.
Gracias
Desearia saber como se puede hacer esto:
Tengo varios GET donde el usuario ingresa valores de monedas
Hice una calculadora de dinero (al ir ingresando la cantidad de monedas y billetes de cada denominacion, se va presentando el valor total de la suma). Esta calculadora la llamo mediante un boton colocado en el dialogo
La pregunta es:
Como puedo devolver el valor total de la suma de dinero al GET que tenia el ultimo foco.
Creo que podria hacer un copia al CLIPBOARD y luego PASTE en el campo pero no se hacer lo primero y lo segundo lo tendria que hacer el usuario, cosa que me gustaria que fuera automatica.
Gracias
Re: Ayuda con CLIPBOAR
Guillermo:
Se me ocurre, a menos que haya algo más directo, que en el botón donde llamas a la calculadora lo pongas así:
ACTION nVariable := CALCULADORA()
Y en la función calculadora regreses el valor + - así
STATIC FUNCTION Calculadora()
LOCAL nTotal := 0.00
.....
.....
tu código donde recibes los valores
y lo sumas a la variable nTotal
.....
....
RETURN(nTotal)
Espero te funcione la idea.
Saludos
Se me ocurre, a menos que haya algo más directo, que en el botón donde llamas a la calculadora lo pongas así:
ACTION nVariable := CALCULADORA()
Y en la función calculadora regreses el valor + - así
STATIC FUNCTION Calculadora()
LOCAL nTotal := 0.00
.....
.....
tu código donde recibes los valores
y lo sumas a la variable nTotal
.....
....
RETURN(nTotal)
Espero te funcione la idea.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Ayuda con CLIPBOAR
Hola Armando:
Gracias por contestar, en efecto, lo que propones me devolveria el valor calculado pero como puedo saber cual era el ultimo GET con foco para ponerle el valor calculado en forma automatica...
Gracias
Saludos hasta Toluca desde Panama
Gracias por contestar, en efecto, lo que propones me devolveria el valor calculado pero como puedo saber cual era el ultimo GET con foco para ponerle el valor calculado en forma automatica...
Gracias
Saludos hasta Toluca desde Panama
Re: Ayuda con CLIPBOAR
Guillermo:
Mucho ayudaría si muestras parte del código donde tienes el problema pues,
al menos a mi, no me queda muy claro, pero tratando de adivinar un poco.
Mandale el get a la función Calculadora()
ACTION nVariable := CALCULADORA(UltimoGet)
Saludos
Mucho ayudaría si muestras parte del código donde tienes el problema pues,
al menos a mi, no me queda muy claro, pero tratando de adivinar un poco.
Mandale el get a la función Calculadora()
ACTION nVariable := CALCULADORA(UltimoGet)
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Ayuda con CLIPBOAR
En realidad no se trata de un problema. Estoy tratando de hacer una mejora al programa tal como sigue:
Tengo la siguiente funcion que presenta un dialogo en pantalla en donde el usuario puede ingresar la cantidad de monedas y billetes que tiene a la mano para que la funcion SUMAPLATA le valla mostrando la suma total de dinero que tiene. Esta funcion MONEYCALC() la llamo desde un boton que se encuentra en el dialogo. En dicho dialogo existen varios GETs en donde el usuario puede ingresar valores de dinero, pero, actualmente el usuario tiene que copiar el valor mostrado por MONEYCALC() en una hoja de papel y luego al cerrar la ventana de MONEYCALC() escribir la cantidad de dinero en la celda que el desee.
Lo que quiero saber es si existe la posibilidad que al momento de llamar a la funcion MONEYCALC(), la misma pueda saber cual GET tenia foco en ese momento para que al finalizar, copie el valor de la suma en dicho GET sin que el usuario tenga que recordar el valor e ingresarlo por si mismo.
Gracias amigo
//-------------------------------
FUNC MONEYCALC()
LOCAL oDlg,X,oSAY,oBtn,nSAY:=0,oFOTO
LOCAL oGET:=ARRAY(14)
LOCAL aGET:={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
DEFINE DIALOG oDlg RESOURCE "MONEYCALC"
//REDEFINE IMAGE oFOTO ID 165 OF oDlg FILE '\MEDICKEY\IMG\CUENTA.JPG' //ADJUST
REDEFINE SAY oSAY VAR nSAY ID 1000 OF oDlg PICTURE "99,999.99" COLOR CLR_BLUE FONT oFontMAGOO
REDEFINE GET oGET[ 1] VAR aGET[ 1] ID 131 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 2] VAR aGET[ 2] ID 132 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 3] VAR aGET[ 3] ID 133 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 4] VAR aGET[ 4] ID 134 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 5] VAR aGET[ 5] ID 135 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 6] VAR aGET[ 6] ID 136 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 7] VAR aGET[ 7] ID 137 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 8] VAR aGET[ 8] ID 138 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 9] VAR aGET[ 9] ID 139 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[10] VAR aGET[10] ID 140 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[11] VAR aGET[11] ID 141 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[12] VAR aGET[12] ID 142 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[13] VAR aGET[13] ID 143 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[14] VAR aGET[14] ID 144 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE BUTTON oBtn ID 100 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]
//-------------------------------
FUNC SUMAPLATA(aM)
LOCAL M:=(aM[1]*.01)+(aM[2]*.05)+(aM[3]*.1)+(aM[4]*.25)+(aM[5]*.5)
LOCAL B:=aM[6]+(aM[7]*5)+(aM[8]*10)+(aM[9]*20)+(aM[10]*50)+(aM[11]*100)
RETU M+B+aM[12]+aM[13]+aM[14]
Tengo la siguiente funcion que presenta un dialogo en pantalla en donde el usuario puede ingresar la cantidad de monedas y billetes que tiene a la mano para que la funcion SUMAPLATA le valla mostrando la suma total de dinero que tiene. Esta funcion MONEYCALC() la llamo desde un boton que se encuentra en el dialogo. En dicho dialogo existen varios GETs en donde el usuario puede ingresar valores de dinero, pero, actualmente el usuario tiene que copiar el valor mostrado por MONEYCALC() en una hoja de papel y luego al cerrar la ventana de MONEYCALC() escribir la cantidad de dinero en la celda que el desee.
Lo que quiero saber es si existe la posibilidad que al momento de llamar a la funcion MONEYCALC(), la misma pueda saber cual GET tenia foco en ese momento para que al finalizar, copie el valor de la suma en dicho GET sin que el usuario tenga que recordar el valor e ingresarlo por si mismo.
Gracias amigo
//-------------------------------
FUNC MONEYCALC()
LOCAL oDlg,X,oSAY,oBtn,nSAY:=0,oFOTO
LOCAL oGET:=ARRAY(14)
LOCAL aGET:={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
DEFINE DIALOG oDlg RESOURCE "MONEYCALC"
//REDEFINE IMAGE oFOTO ID 165 OF oDlg FILE '\MEDICKEY\IMG\CUENTA.JPG' //ADJUST
REDEFINE SAY oSAY VAR nSAY ID 1000 OF oDlg PICTURE "99,999.99" COLOR CLR_BLUE FONT oFontMAGOO
REDEFINE GET oGET[ 1] VAR aGET[ 1] ID 131 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 2] VAR aGET[ 2] ID 132 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 3] VAR aGET[ 3] ID 133 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 4] VAR aGET[ 4] ID 134 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 5] VAR aGET[ 5] ID 135 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 6] VAR aGET[ 6] ID 136 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 7] VAR aGET[ 7] ID 137 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 8] VAR aGET[ 8] ID 138 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[ 9] VAR aGET[ 9] ID 139 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[10] VAR aGET[10] ID 140 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[11] VAR aGET[11] ID 141 OF oDlg PICTURE "9999" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[12] VAR aGET[12] ID 142 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[13] VAR aGET[13] ID 143 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE GET oGET[14] VAR aGET[14] ID 144 OF oDlg PICTURE "99,999.99" VALID (nSAY:=SUMAPLATA(aGET),oSAY:REFRESH(),.T.)
REDEFINE BUTTON oBtn ID 100 OF oDlg ACTION oDlg:END()
ACTIVATE DIALOG oDlg CENTER
RETU[]
//-------------------------------
FUNC SUMAPLATA(aM)
LOCAL M:=(aM[1]*.01)+(aM[2]*.05)+(aM[3]*.1)+(aM[4]*.25)+(aM[5]*.5)
LOCAL B:=aM[6]+(aM[7]*5)+(aM[8]*10)+(aM[9]*20)+(aM[10]*50)+(aM[11]*100)
RETU M+B+aM[12]+aM[13]+aM[14]
Re: Ayuda con CLIPBOAR
Guillermo:
Y cual es el código de la parte del diálogo donde mandas ejecutar la función MoneyCalc() y
a la que quieres retornar la suma de dinero ?
Saludos
Y cual es el código de la parte del diálogo donde mandas ejecutar la función MoneyCalc() y
a la que quieres retornar la suma de dinero ?
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Ayuda con CLIPBOAR
Hola
Desde aqui llamo a la funcion MoneyCalc()
REDEFINE SBUTTON oBtn ID 801 OF oFld3:aDialogs[1] RESOURCE "B_CALC" ACTION MONEYCALC() XP PROMPT "Calculadora de dinero" TEXT 4
Desde aqui llamo a la funcion MoneyCalc()
REDEFINE SBUTTON oBtn ID 801 OF oFld3:aDialogs[1] RESOURCE "B_CALC" ACTION MONEYCALC() XP PROMPT "Calculadora de dinero" TEXT 4
- JavierVital
- Posts: 105
- Joined: Thu Feb 26, 2009 4:08 pm
- Contact:
Re: Ayuda con CLIPBOAR
En el Get que estas leyendo ahi mandas a trae a la funcion de la calculadora
oGet[1,2] := 0
REDEFINE GET oGet[1,1] VAR oGet[1,2] ID 101 OF oDlg BITMAP "Calc" ACTION MoneyCalc(oGet[1,1])
En la funcion de la la Calculadora
FUNCTION MoneyCalc(oObj1)
LOCAL nTotal
..........
..........
..........
oObj1:cText(nTotal)
RETURN
Ami me funciona bien
Saludos.
oGet[1,2] := 0
REDEFINE GET oGet[1,1] VAR oGet[1,2] ID 101 OF oDlg BITMAP "Calc" ACTION MoneyCalc(oGet[1,1])
En la funcion de la la Calculadora
FUNCTION MoneyCalc(oObj1)
LOCAL nTotal
..........
..........
..........
oObj1:cText(nTotal)
RETURN
Ami me funciona bien
Saludos.
Re: Ayuda con CLIPBOAR
Hola Javier
Que version de FWH utilizas ?.
La sintaxis de la instruccion que me indicas no corre en la mia...
En efecto, asi funcionaria, pero tendria que poner un boton de llamada a la calculadora en cada uno de los GETs de dinero que tiene el dialogo (son mas de 50)... Me gustaria que la propia funcion MONEYCALC() sepa cual era el ultimo GET con foco para no tener que programar tanto...
Gracias
Que version de FWH utilizas ?.
La sintaxis de la instruccion que me indicas no corre en la mia...
En efecto, asi funcionaria, pero tendria que poner un boton de llamada a la calculadora en cada uno de los GETs de dinero que tiene el dialogo (son mas de 50)... Me gustaria que la propia funcion MONEYCALC() sepa cual era el ultimo GET con foco para no tener que programar tanto...
Gracias
Re: Ayuda con CLIPBOAR
Guillermo:
Creo que tu solución sería que usaras la clase BTNGET, mira un ejemplo de su uso
Observa el uso del método ACTION
La clase BtnGet es de terceros y si no mal recuerdo FW en sus versiones recientes ya viene con la clase GET con su propio ACTION.
Saludos
Creo que tu solución sería que usaras la clase BTNGET, mira un ejemplo de su uso
Code: Select all
#Include "BtnGet.ch"
REDEFINE BTNGET aGets[02] VAR nImporte ID 102 OF oDlg;
RESOURCE "Buscar" UPDATE;
PICTURE "@999,999.99";
ACTION nImporte := MoneyCalc();
MESSAGE "Código del cliente"
La clase BtnGet es de terceros y si no mal recuerdo FW en sus versiones recientes ya viene con la clase GET con su propio ACTION.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Re: Ayuda con CLIPBOAR
Gracias Armando.
He tratado de usar la clase BTNGET incluyendo BTNGET.CH y BTNGET.LIB pero al compilar me sale el error
Error: Unresolved external '_HB_FUN_TBTNGET'
Alguna idea
uso FWH 8.05
Gracias
He tratado de usar la clase BTNGET incluyendo BTNGET.CH y BTNGET.LIB pero al compilar me sale el error
Error: Unresolved external '_HB_FUN_TBTNGET'
Alguna idea
uso FWH 8.05
Gracias
Re: Ayuda con CLIPBOAR
Guillermo:
Todo hace suponer que no estas ligando la LIB BTNGET, asegurate que la tienes incluida. Admas debe ser creada con la misma versión de [x]Harbour que estas usando para compilar tu aplicación.
Saludos
Todo hace suponer que no estas ligando la LIB BTNGET, asegurate que la tienes incluida. Admas debe ser creada con la misma versión de [x]Harbour que estas usando para compilar tu aplicación.
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- JavierVital
- Posts: 105
- Joined: Thu Feb 26, 2009 4:08 pm
- Contact:
Re: Ayuda con CLIPBOAR
Guillermo
Como dice Armando tu solucion es BTNGET
Funciona muy bien a mi tambien me a funcionado muy bien.
Saludos.
Como dice Armando tu solucion es BTNGET
Funciona muy bien a mi tambien me a funcionado muy bien.
Saludos.
Re: Ayuda con CLIPBOAR
Hola amigos.
He verificado y si se encuenta en la lista de las lib. El que este compilada con la version FWH 8.05 no lo se, solo utilizo la que ya estaba en \FWH\LIB
Gracias
He verificado y si se encuenta en la lista de las lib. El que este compilada con la version FWH 8.05 no lo se, solo utilizo la que ya estaba en \FWH\LIB
Gracias