Cláusula ON CLICK não me devolve valor nenhum
Enviado: 12 Mai 2010 18:33
Caros, preciso de ajuda no seguinte:
Tenho esta rotina de browse com hwgui, para seleção de município, caso o municipio digitado não seja encontrado na tabela.
Até funciona, mas eu gostaria que na chamada da função "encontrou(...)" fosse passado algum valor de clique de mouse ou tecla, para que outras rotinas possam ser disparadas.
Se eu dou duplo clique ou teclo ENTER, o registro é selecionado, e a rotina transcorre normalmente. Mas eu gostaria de implementar outras rotinas dependendo do evento do mouse ou teclado. E para isso eu preciso identificar o que ocorreu com os mesmos.
O "X" da questão está na função _browse() justamente na cláusula ON CLICK.
Desculpem a falta de jeito, mas eu estou cozinhando essa HwGui em fogo baixo.
Tenho esta rotina de browse com hwgui, para seleção de município, caso o municipio digitado não seja encontrado na tabela.
Até funciona, mas eu gostaria que na chamada da função "encontrou(...)" fosse passado algum valor de clique de mouse ou tecla, para que outras rotinas possam ser disparadas.
Se eu dou duplo clique ou teclo ENTER, o registro é selecionado, e a rotina transcorre normalmente. Mas eu gostaria de implementar outras rotinas dependendo do evento do mouse ou teclado. E para isso eu preciso identificar o que ocorreu com os mesmos.
O "X" da questão está na função _browse() justamente na cláusula ON CLICK.
Código: Selecionar todos
#include "hwgui.ch"
#include "windows.ch"
FUNCTION browse( p1 )
private b1:= select()
abnfe1()
select cdnfe000
ordsetfocus("indnfe05")
if dbseek(p1)
c9 = sigla_uf
close cdnfe000
select(b1)
return .t.
endif
RETURN _browse()
FUNCTION _browse
PRIVATE oBrowse1, oBrowse, key
INIT DIALOG oDlg TITLE "Selecione o município desejado" ;
AT 475,151 SIZE 529,394 ;
FONT HFont():Add( 'Arial',0,-13,400,,,) CLIPPER NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
@ 50,40 BROWSE oBrowse1 DATABASE SIZE 360,310 ;
STYLE WS_VSCROLL + WS_HSCROLL;
ON CLICK {|o,key| encontrou(o,key)} // Aqui eu esperava que enviasse algum valor, mas não envia.
oBrowse1:AddColumn( HColumn():New( "MUNICÍPIO", FieldBlock(Fieldname(5)),"C", 30,00) )
oBrowse1:AddColumn( HColumn():New( "SIGLA UF" , FieldBlock(Fieldname(3)),"C", 02,00) )
oBrowse1:aColumns[1]:length := 30
oBrowse1:aColumns[2]:length := 02
oBrowse1:aColumns[1]:nJusHead := DT_CENTER
oBrowse1:aColumns[2]:nJusHead := DT_CENTER
ACTIVATE DIALOG oDlg
RETURN oDlg:lresult
FUNCTION encontrou( oBrowse, key )
msginfo(oBrowse) // AQUI CHEGA SEM VALOR, MAS COM TIPO O
msginfo(key) // AQUI CHEGA SEM VALOR, MAS COM TIPO N
c8 = hb_ansitooem(upper(nome_mun))
c9 = sigla_uf
EndDialog()
close cdnfe000
select(b1)
return .t.