FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ayuda con CLIPBOAR
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Ayuda con CLIPBOAR
Posted: Sun Sep 27, 2009 05:59 AM

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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con CLIPBOAR
Posted: Sun Sep 27, 2009 02:33 PM

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

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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Sun Sep 27, 2009 06:06 PM

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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con CLIPBOAR
Posted: Sun Sep 27, 2009 06:38 PM

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

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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Sun Sep 27, 2009 10:39 PM

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]

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 01:50 AM

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

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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 03:45 AM

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

Posts: 105
Joined: Thu Feb 26, 2009 04:08 PM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 06:10 AM

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.

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 12:47 PM

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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 02:00 PM
Guillermo:

Creo que tu soluci贸n ser铆a que usaras la clase BTNGET, mira un ejemplo de su uso

Code (fw): Select all Collapse
#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"


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
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
Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 04:22 PM

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

Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 05:08 PM

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

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
Posts: 105
Joined: Thu Feb 26, 2009 04:08 PM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 09:49 PM

Guillermo
Como dice Armando tu solucion es BTNGET

Funciona muy bien a mi tambien me a funcionado muy bien.

Saludos.

Posts: 205
Joined: Wed Sep 02, 2009 03:11 AM
Re: Ayuda con CLIPBOAR
Posted: Mon Sep 28, 2009 10:43 PM

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

Continue the discussion