Página 1 de 1

Retorno de variável

Enviado: 05 Mai 2009 10:29
por clebervn
Eu construi uma calculadora pro meu sistema, e qdo aperto a tecla T (transferencia), ele armazena o valor último calculado. Tem como eu jogar este valor para o meu get atual ???
Alguém tem alguma idéia de como eu devo proceder ??? Tem alguma função q identifique q get eu estou ??

abc

Re: Retorno de variável

Enviado: 05 Mai 2009 12:41
por esbasso
ogetatual := odlg:ActiveControl()
ogetatual:caption := valor da calculadora

Re: Retorno de variável

Enviado: 05 Mai 2009 13:57
por clebervn
mas isso eu ponho dentro da chamada da minha função (DIALOG) ?? no caso a calculadora ??

pq pus e deu erro....

Error BASE/1004 Message not found: HDIALOG:ACTIVECONTROL
Called from tobject.prg->HDIALOG:ERROR(172)
Called from tobject.prg->HDIALOG:MSGNOTFOUND(205)
Called from tobject.prg->HDIALOG:ACTIVECONTROL(0)
Called from RH.PRG->CALCULADORA(3720)
....


programa ficou assim :


// Calculadora
FUNCTION Calculadora()
LOCAL HTAM := 470, VTAM := 290
PRIVATE Inicio := 40, Fim := 150, aItensC := { ALLTRIM(STR(nUltCalc)) }, xValor := "", nResul :=0.00, nValor := 0

// VARIÁVEIS DE CONTROLE DE VALIDAÇÃO
PRIVATE lOk := .F., nTotCalc := 0.00, oTotCalc, cTeclaP := "", nResAnt := 0.00, cUltOpe := ""

nIdAnt := GetDlgCtrlId(GETFOCUS())

oGetAtual := odlg:ActiveControl()

IF nUltCalc > 0
xValor := ALLTRIM(STR(nUltCalc))
nValor := nUltCalc
nTotCalc:= nUltCalc
nResAnt := nUltCalc
ENDIF

// CRIAÇÃO DA TELA
INIT DIALOG oCalc TITLE " Calculadora" ;
ICON oIcon ;
AT Inicio,Fim SIZE HTAM,VTAM CLIPPER NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+DS_CENTER

SetColorinFocus(.T.)

// BROWSE DA TABELA
@ 180,070 BROWSE oBrw ARRAY SIZE HTAM-195, VTAM-105 ;
FONT oFontNorm;
ON CLICK {||keyb_event(K_ENTER)};
ON KEYDOWN {|o,key| Brw_Calc(o,key)};
ON INIT {|| oBrw:SETFOCUS() }

CreateArList( oBrw, aItensC )

oBrw:aColumns[1]:length := 10
oBrw:aColumns[1]:width := 100
oBrw:aColumns[1]:heading := ""
oBrw:aColumns[1]:bColorBlock := {|| {x_BLACK, x_WHITE , x_WHITE, x_DARKBLUE }}
oBrw:aColumns[1]:nJusLin := DT_RIGHT

// GET
//QuadroFixo(10,08,1,36,HTAM)
@ 010,010 GET oTotCalc VAR nTotCalc SIZE HTAM-25,50 FONT oFontCalc ;
COLOR x_RED STYLE SS_RIGHT+WS_DISABLED

// LINHA DIVISÓRIA DE GET´S E BOTÕES
@ 000,065 LINE oLine1 LENGTH HTAM

// BOTÕES
@ 010,070 BUTTON oButton11 CAPTION "C" ON CLICK {|| TeclaC() } SIZE 30,30
@ 050,070 BUTTON oButton12 CAPTION "X" ON CLICK {|| TeclaX() } SIZE 30,30
@ 090,070 BUTTON oButton13 CAPTION "<-" ON CLICK {|| TeclaB() } SIZE 30,30
@ 130,070 BUTTON oButton14 CAPTION "+" ON CLICK {|| TeclaA() } SIZE 30,30

@ 010,110 BUTTON oButton21 CAPTION "1" ON CLICK {|| Tecla1() } SIZE 30,30
@ 050,110 BUTTON oButton22 CAPTION "2" ON CLICK {|| Tecla2() } SIZE 30,30
@ 090,110 BUTTON oButton23 CAPTION "3" ON CLICK {|| Tecla3() } SIZE 30,30
@ 130,110 BUTTON oButton24 CAPTION "-" ON CLICK {|| TeclaS() } SIZE 30,30

@ 010,150 BUTTON oButton31 CAPTION "4" ON CLICK {|| Tecla4() } SIZE 30,30
@ 050,150 BUTTON oButton32 CAPTION "5" ON CLICK {|| Tecla5() } SIZE 30,30
@ 090,150 BUTTON oButton33 CAPTION "6" ON CLICK {|| Tecla6() } SIZE 30,30
@ 130,150 BUTTON oButton34 CAPTION "/" ON CLICK {|| TeclaD() } SIZE 30,30

@ 010,190 BUTTON oButton41 CAPTION "7" ON CLICK {|| Tecla7() } SIZE 30,30
@ 050,190 BUTTON oButton42 CAPTION "8" ON CLICK {|| Tecla8() } SIZE 30,30
@ 090,190 BUTTON oButton43 CAPTION "9" ON CLICK {|| Tecla9() } SIZE 30,30
@ 130,190 BUTTON oButton44 CAPTION "*" ON CLICK {|| TeclaM() } SIZE 30,30

@ 010,230 BUTTON oButton51 CAPTION "T" ON CLICK {|| TeclaT() } SIZE 30,30
@ 050,230 BUTTON oButton52 CAPTION "0" ON CLICK {|| Tecla0() } SIZE 30,30
@ 090,230 BUTTON oButton53 CAPTION "." ON CLICK {|| TeclaP() } SIZE 30,30
@ 130,230 BUTTON oButton54 CAPTION "Tot" ON CLICK {|| TeclaF() } SIZE 30,30

ACTIVATE DIALOG oCalc

SETFOCUS ( nIdAnt )
IF nResul <> 0
oGetAtual:caption := nResul
ENDIF

RETURN ( .T. )

Re: Retorno de variável

Enviado: 05 Mai 2009 14:08
por esbasso
sua LIB não esta atualizada com a do CVS por isso do erro
faça assim
oget := odlg:findcontrol(,getfocus())
oget:caption := seu valor

Re: Retorno de variável

Enviado: 05 Mai 2009 14:33
por clebervn
agora deu o seguinte....


Error BASE/1005 Message not found: HEDIT:_CAPTION
Called from tobject.prg->HEDIT:ERROR(172)
Called from tobject.prg->HEDIT:MSGNOTFOUND(205)
Called from tobject.prg->HEDIT:_CAPTION(0)
Called from RH.PRG->CALCULADORA(3792)

Re: Retorno de variável

Enviado: 05 Mai 2009 14:38
por clebervn
eu pus assim e deu :

ogetatual:settext(nresul)

tem mais um problema agora... hehehe

não é so de get q posso chamar a calculadora... de um grid tb, ai como identificar q não é de um get q estou chamando por exemplo ..... ou no pior caso, passar um parametro q de onde estou chamando não tem get. por exemplo :

calculadora(.F.)

calculadora(.T.)

abc

Re: Retorno de variável

Enviado: 05 Mai 2009 15:00
por esbasso
tem varias formas de se identificar o get

oget:=odlg:findcontrol(,getfocus())
if oget != Nil .and. oget:classname = "HEDIT"
oget:settext(valor)
endif