Página 1 de 1
Cláusula ON CHANGE na HwGui
Enviado: 04 Jun 2012 18:00
por Vandi
Boa tarde...
Alguém pode me dizer, em HwGui, o que seria equivalente a cláusula ON CHANGE da MiniGui?
Gilvandi
Cláusula ON CHANGE na HwGui
Enviado: 05 Jun 2012 01:05
por Vandi
Bom dia...
(Acrescentando) Gostaria de um exemplo de uma rotina com Browse em HwGui com o equivalente a cláusula ON CHANGE da Minigui, tipo assim, em um cadastro, a medida que o cursor for sendo deslocado na tela do browse, em outra tela os dados completos do cadastros serial atualizados e apresentados.
Creio que essa informação será de grande valia para muitos aqui do forum.
Agradecimentos,
Gilvandi
Cláusula ON CHANGE na HwGui
Enviado: 05 Jun 2012 15:33
por Toledo
Gilvandi, veja o exemplo que está na pasta \samples\browsefilter da HwGui.
Abraços,
Cláusula ON CHANGE na HwGui
Enviado: 06 Jun 2012 12:53
por sygecom
Olá Gilvandi,
Nos GET e COMBOBOX também tem ON CHANGE, veja exemplos abaixo:
GET:
Código: Selecionar todos
@ 165,GETDESKTOPHEIGHT()-170 Get oGet1 VAR wNOME SIZE 300,24;
STYLE ES_AUTOHSCROLL PICTURE '@!' MAXLENGTH 40;
ON Change {|| MsgInfo(oGet1:GETTEXT()),.T. };
TOOLTIP "Clique Aqui Para buscar um Nome"
COMBOBOX
Código: Selecionar todos
aLST :={'OPÇÃO 1','OPÇÃO 2'}
@ 011,20 GET COMBOBOX oLST VAR nLST ITEMS aLST SIZE 704,24;
ON CHANGE {|| MsgInfo(aLST[nLST]),.T. };
TOOLTIP 'Escolha uma opção'
Cláusula ON CHANGE na HwGui
Enviado: 22 Ago 2012 13:40
por Wanderlei
Olá Leonardo,
vc sabe me dizer o que está errado neste redefine que não executa o ON CHANGE.
Código: Selecionar todos
REDEFINE COMBOBOX oTipoSecao ITEMS {'MEDICAMENTO','PERFUMARIA','OUTROS'} ;
OF oDlg_Mod ;
ID 104 ;
ON INIT {|| oTipoSecao:Value := iif( aGet[nSeTipo] == 'M', 1, ;
iif( aGet[nSeTipo] == 'P', 2, 3 ) ) } ;
ON CHANGE {|| oTipoSecao:Value := 1,MsgInfo('Change') ,aGet[nSeTipo] := iif( oTipoSecao:value == 1, 'M', ;
iif( oTipoSecao:value == 2, 'P','O' ) ), msginfo(aGet[nSeTipo]+"-"+str(oTipoSecao:value)) } ;
TOOLTIP 'Selecione o tipo de produto da seção'
Fiz o dialog no pelles C e estou redefinindo no prg, mas não está funcionando, não executa o ON CHANGE para mudar o valor, como faço?
Cláusula ON CHANGE na HwGui
Enviado: 22 Ago 2012 16:33
por Toledo
Não sou o Leonardo, mas vou fazer uma observação:
No início do ON CHANGE você está definindo o valor do
oTipoSecao para
1, então não importa qual seja a seleção que você faça, sempre o item selecionado será "MEDICAMENTOS".
Abraços,
Cláusula ON CHANGE na HwGui
Enviado: 22 Ago 2012 16:49
por Wanderlei
Desculpe toledo,
eu deveria ter tirado isso antes de postar, é que ON CHANGE não está executando, nem se quer mostra o MsgInfo que coloquei, nos exemplo que vi da pasta samples tem muit GET COMBOBOX mas como criei pelo pelles não sei como redefinir.
na verdades está assim:
REDEFINE COMBOBOX oTipoSecao ITEMS {'MEDICAMENTO','PERFUMARIA','OUTROS'} ;
OF oDlg_Mod ;
ID 104 ;
ON INIT {|| oTipoSecao:Value := iif( aGet[nSeTipo] == 'M', 1, ;
iif( aGet[nSeTipo] == 'P', 2, 3 ) ) } ;
ON CHANGE {|| aGet[nSeTipo] := iif( oTipoSecao:value == 1, 'M', ;
iif( oTipoSecao:value == 2, 'P','O' ) ) } ;
TOOLTIP 'Selecione o tipo de produto da seção'
o oTipoSecao:value está sempre vindo o numero que carregou no ON INIT e não está alterando quando clicado.
será que tem algo errado ai?
Cláusula ON CHANGE na HwGui
Enviado: 22 Ago 2012 22:36
por sygecom
Olá Wanderlei,
Eu não uso REDEFINE, mas tente usando com VAR, exemplo:
REDEFINE COMBOBOX oTipoSecao VAR nTipoSecao ITEMS {'MEDICAMENTO','PERFUMARIA','OUTROS'} ;
OF oDlg_Mod ;
ID 104 ;
ON INIT {|| oTipoSecao:Value := iif( aGet[nSeTipo] == 'M', 1,iif( aGet[nSeTipo] == 'P', 2, 3 ) ) } ;
ON CHANGE {|| aGet[nSeTipo] := iif( nTipoSecao == 1, 'M', iif( nTipoSecao == 2, 'P','O' ) ) } ;
TOOLTIP 'Selecione o tipo de produto da seção'
E tente colocar uns MSGINFO() no ON CHANGE para ver se dispara algo.
Outra coisa que notei no GUILIB.CH que os camandos para REDEFINE da COMBOBOX não são tão completemos como no modo usando @, mas acho que não deveria influenciar.
Cláusula ON CHANGE na HwGui
Enviado: 23 Ago 2012 15:24
por Wanderlei
é verdade Leonardo, o redefine não está funcionando, então vou utilizar o designer ao inves do pelles c, fiz um teste desenhando a tela no designer e copiei a função para dentro do meu prg e funcionou. valeu pela atenção de vocês.
