Página 1 de 1

RefreshLine() Não funciona neste caso???

Enviado: 19 Jun 2008 13:17
por Cezar
Boa tarde,

No codigo abaixo estou usando 2 funcoes:
xGETFOCUS para pintar a linha do browse com o foco e,
xLOSTFOCUS para informar que o foco Não está mais no Browse.

Nesta 2 funçoes, se uso RefreshLine() para atualizar a Linha, DÀ ERRO.

Ja olhei hBrowse mas não achei o problema, não sei se o problema é do meu codigo,
ou existe outra maneira de trabalhar com o foco do browse?

Agradeço a ajuda.
v_cez@...


@ 005,005 BROWSE oBrowse DATABASE OF oDlg ;
SIZE 590,300 ;
FONT oFontBrw ;
STYLE WS_TABSTOP + WS_VSCROLL + WS_HSCROLL ;
ON KEYDOWN {|o,Key| Browse_Key(o,Key,aBtn[1]) } ;
ON CLICK {|o,Key| Browse_Click(o,Key) } ;
ON GETFOCUS {|| xGetFocus(oBrowse) } ;
ON LOSTFOCUS {|| xLostFocus(oBrowse) }

ADD COLUMN {|| CodCli } TO oBrowse HEADER 'Codigo' EDITABLE
ADD COLUMN {|| Nome } TO oBrowse HEADER 'Nome' LENGTH 30
EDITABLE
ADD COLUMN {|| CNPJ } TO oBrowse HEADER 'CNPJ' EDITABLE

oBrowse:Alias := "Clientes"
oBrowse:lEsc := .T.
// oBrowse:htbColor := cRgb('RED')
// oBrowse:bColorSel := cRgb('BRIGHTBLUE')

nTop := 320
nLeft += 29
@ nLeft,nTop BUTTONEX aBtn[5] CAPTION "" ;
SIZE 28,26 ;
STYLE WS_TABSTOP + WS_DLGFRAME ;
BITMAP oBmp_5:Handle ;
TOOLTIP "Incluir Cliente" ;
ON CLICK {|| Edita( .T., oBrowse ) }

ACTIVATE DIALOG oDlg
DbCloseAll()
RETURN Nil

STATIC FUNCTION xGetFocus(oBrowse)
oBrowse:htbColor := cRgb('RED')
oBrowse:bColorSel := cRgb('BRIGHTBLUE')
// oBrowse:RefreshLine() DÁ ERRRO !!!
oBrowse:Refresh()
RETURN (.F.)

STATIC FUNCTION xLostFocus(oBrowse)
oBrowse:htbColor := cRgb('LIGHTGRAY')
oBrowse:bColorSel := cRgb('LIGHTGRAY')
// oBrowse:RefreshLine() DÁ ERRO !!!
oBrowse:Refresh()
RETURN (.F.)

Re: RefreshLine() Não funciona neste caso???

Enviado: 19 Jun 2008 19:38
por sygecom
Não fiz o teste, tenta mudar apenas as chamadas e Habilitar os refreshline()

Código: Selecionar todos

ON CLICK {|o,Key| Browse_Click(o,Key) } ;
ON GETFOCUS {|o,Key| xGetFocus(o,Key) };
ON LOSTFOCUS {|o,Key| xLostFocus(o,Key) };

Re: RefreshLine() Não funciona neste caso???

Enviado: 20 Jun 2008 03:31
por Cezar
Leonardo,

Fiz como sugeriu, mas continua o erro:

Error BASE/1081 Erro nos parƒmetros: +
Called from hbrowse.prg->HBROWSE:REFRESHLINE(1829)
Called from prg910.PRG->BRWLOSTFOCUS(24)
Called from PRG052.PRG->(b)PRG052(47)
Called from hbrowse.prg->HBROWSE:ONEVENT(291)
Called from ->HWG_DLGBOXINDIRECT(0)
Called from hdialog.prg->HDIALOG:ACTIVATE(156)
Called from errorsys.prg->ERRORPREVIEW(154)

A linha 1829 é exatamente igual ao METHOD LINEUP() LINEDOWN()

Bem o jeito é continuar pesquisando..

Grato
v_cez@yahoo.com.br

Re: RefreshLine() Não funciona neste caso???

Enviado: 20 Jun 2008 12:54
por Cezar
Ola,

Se colocar:
ON INIT {|| oBrowse:SetFocus() }

o RefreshLine() Funciona !!

v_cez@yahoo.com.br