Page 1 of 2
combobox não encerra
Posted: Thu Feb 21, 2008 2:29 pm
by rogerio
Olá
após atualizar para FWH 8.02 surgiu-me um problema:
Nos diálogos aproveitados em vários relatórios, quando preciso encerrar um COMBOBOX eles deixaram de ser encerrados.
ex.:
REDEFINE COMBOBOX oList1 VAR matriz[3] ID 125 of oT430a
...
ACTIVATE DIALOG oT430a NOWAIT VALID ( oT430a := nil, .t. ) ON INIT ( oList1:end() )
end() deixou de encerrar o combo
Alguém sabe o motivo e como corrigir?
[]'s
Rogerio
Posted: Thu Feb 21, 2008 6:21 pm
by ADBLANCO
Exactamente no entiendo el caso, Pero;
Tienes solo el combobox en el dialogo?
Posted: Thu Feb 21, 2008 7:27 pm
by rogerio
Adblanco
no diálogo existem vários controles.
Os Get's, say's, button's, etc., que mando encerrar (:end() ) são encerrados.
Somente os combobox que deixaram de ser encerrados em todos os diálogos de todo o programa.
Como aproveito um mesmo desenho de janela para vários relatórios, conforme o caso preciso encerrar determinados controles.
[]'s
Rogerio
Posted: Thu Feb 21, 2008 7:31 pm
by karinha
O Botão está com a clausula CANCEL Rogerio?
Quando Voce valida, usa o comando GETASYNCKEY()?
Ex:
IF GETASYNCKEY( VK_UP )
RETURN( .F. )
ENDIF
RETURN( .T. )
QUAL É O ESTILO DO COMBO QUE ESTAIS USANDO?
Posted: Thu Feb 21, 2008 7:41 pm
by rogerio
karinha
estou usando o seguinte:
CONTROL "", IDC_COMBOBOX4, "COMBOBOX", CBS_DROPDOWNLIST | WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_TABSTOP, 5, 75, 91, 87
[]'s
Rogerio
Posted: Thu Feb 21, 2008 8:31 pm
by ronaldo
você podera oculta-lo, mas ficar na memoria usando o camento Hide() e para voltar a aparecer SHOW()
REDEFINE COMBOBOX oObj ...
oObj:Hide() ///ira oculta-lo
Posted: Thu Feb 21, 2008 9:02 pm
by karinha
Rogerio,
CBS_DROPDOWNLIST -> 16 Bits.
CBS_DROPDOWN -> 32 Bits, automaticamente, o <enter< aciona-se.
Abraços, porque não te vejo no FIVEWIN BRASIL?
Posted: Fri Feb 22, 2008 2:38 am
by rogerio
Ronaldo
Hide() funciona, obrigado, mas isso me fará ter que varrer todo código atrás de end() nos combos.
Sempre usei end() para encerrar os combos desde o FiveWin 1.9
Karinha,
uso o Workshop para criar os diálogos e ele cria automaticamente o CBS_DROPDOWNLIST , mas tem funcionado perfeitamente.
Eu antes acessava o fórum do virtualobject mas esse acabou. Não tenho o endereço do fivewinbrasil. Manda ele.
[]'s
Rogerio
Posted: Fri Feb 22, 2008 12:03 pm
by karinha
rogerio wrote:Ronaldo
Hide() funciona, obrigado, mas isso me fará ter que varrer todo código atrás de end() nos combos.
Sempre usei end() para encerrar os combos desde o FiveWin 1.9
Karinha,
uso o Workshop para criar os diálogos e ele cria automaticamente o CBS_DROPDOWNLIST , mas tem funcionado perfeitamente.
Eu antes acessava o fórum do virtualobject mas esse acabou. Não tenho o endereço do fivewinbrasil. Manda ele.
[]'s
Rogerio
Rogerio, Mude Nas Propriedades do combo, Para DROPDOWN.
Fivewin Brasil.
http://www.fivewin.com.br
Abraços.
Posted: Fri Feb 22, 2008 12:34 pm
by rogerio
João
Mudei e continuou na mesma.
Faça o seguinte teste:
Na pasta Samples do FWH tem COMBOS.PRG
Altere a última linha da função Main para
ACTIVATE DIALOG oDlg CENTERED ON INIT oCbx2:end()
você verá que o controle permanecerá ativo.
[]'s
Rogerio
Posted: Fri Feb 22, 2008 1:03 pm
by karinha
rogerio wrote:João
Mudei e continuou na mesma.
Faça o seguinte teste:
Na pasta Samples do FWH tem COMBOS.PRG
Altere a última linha da função Main para
ACTIVATE DIALOG oDlg CENTERED ON INIT oCbx2:end()
você verá que o controle permanecerá ativo.
[]'s
Rogerio
Rogerio meu querido, Porque no ON INIT, Porque queres fechar o COMBO, ao ENTRAR no DIALOGO??
O Correto, é VALID(), Fechas o COMBO, ao sair.
Posted: Fri Feb 22, 2008 1:12 pm
by rogerio
João
porque um mesmo diálogo, é utilizado em inúmeras funções.
Então em determinadas não uso certos controles, como get's, say's, combos.
Então ao iniciar o diálogo, eu encerro o que não vou usar na função.
Isso simplifica pacas o código.
No caso de relatórios repetitivos, um mesmo diálogo serve para dezenas.
P. Ex. um relatório tem que haver seleção de Fornecedores e Vendedores, então existem dois combos. Em outro relatório somente seleção de Vendedor. Então utilizo somente um combo e o outro é encerrado na carga do diálogo.
[]'s
Rogerio
Posted: Fri Feb 22, 2008 1:20 pm
by karinha
rogerio wrote:João
porque um mesmo diálogo, é utilizado em inúmeras funções.
Então em determinadas não uso certos controles, como get's, say's, combos.
Então ao iniciar o diálogo, eu encerro o que não vou usar na função.
Isso simplifica pacas o código.
No caso de relatórios repetitivos, um mesmo diálogo serve para dezenas.
P. Ex. um relatório tem que haver seleção de Fornecedores e Vendedores, então existem dois combos. Em outro relatório somente seleção de Vendedor. Então utilizo somente um combo e o outro é encerrado na carga do diálogo.
[]'s
Rogerio
ENTENDI ROGERIO, MAS NESTE CASO, NAO TEM COMO VOCE FINALIZAR O COMBO COM O END(), JÁ QUE VOCE ESTA ATIVANDO O DIALOGO, O QUE VOCE DEVE FAZER, EM MINHA MODESTA OPINIAO, E ESCONDER O COMBO, E APRENSENTA-LO QUANDO O MESMO FOR NECESSARIO.
ESCONDER: OCBX:HIDE()
MOSTRAR: OCBX:SHOW()
Ou voce tambem pode ter quantos COMBOS sejam necessarios no mesmo lugar, usando apenas IDS diferentes e ESCONDE quem nao quer e MOSTRA quem voce quer em tempo real.
Abraços.
Posted: Fri Feb 22, 2008 1:30 pm
by rogerio
OK, João
o hide() funciona.
Porém como sempre foi utilizado end(), desde o FW1.9 em TODOS os prg's de TODOS os sistemas, que dará várias centenas de prg's diferentes, terei que fazer a mudança de end() para hide() isso somente nos combos, pois os demais controles continuam sendo encerrados com end().
Isso aconteceu somente agora na atualização para o FWH 8.02.
Se o Antonio Linares estiver lendo esta discussão talvez ele saiba porque o end() deixou de ser utilizado para encerrar combos.
Eu simplesmente queria evitar um trabalho imenso ao substituir os end() por hide()..
[]'s
Rogerio
Posted: Fri Feb 22, 2008 5:45 pm
by karinha
rogerio wrote:OK, João
o hide() funciona.
Porém como sempre foi utilizado end(), desde o FW1.9 em TODOS os prg's de TODOS os sistemas, que dará várias centenas de prg's diferentes, terei que fazer a mudança de end() para hide() isso somente nos combos, pois os demais controles continuam sendo encerrados com end().
Isso aconteceu somente agora na atualização para o FWH 8.02.
Se o Antonio Linares estiver lendo esta discussão talvez ele saiba porque o end() deixou de ser utilizado para encerrar combos.
Eu simplesmente queria evitar um trabalho imenso ao substituir os end() por hide()..
[]'s
Rogerio
ROGERIO, EU USO A VERSAO 2.7, E TAMBÉM NÃO FUNCIONA O END(), SOMENTE O HIDE()/SHOW().
Abraços.