Página 1 de 1

pegar dados do combobox?

Enviado: 22 Out 2010 09:38
por pena
Pessoal como faço para pegar os dados do combobox?

ex:
carreguei o combobox com as UFS

Código: Selecionar todos

vUf:=Puf:= 0
oUf:Open("Select * from uf order by UF " ,CNN,2,3)
aItems:={}
Do While ! oUf:Eof()
vUf ++
muf=oUf:Fields["UF"]:Value+[-]+oUf:Fields["ESTADO"]:Value
aadd ( aItems , muf )
if oUf:Fields["UF"]:Value = cUf .and. !Empty(cUf)
Puf=vUf
endif
oUf:MoveNext()
Enddo

@ 100,390 COMBOBOX T_uf ;
WIDTH 200 ;
ITEMS aitems ;
VALUE Puf ;
FONT 'Arial' SIZE 09 ;
FONTCOLOR BLACK BOLD

AGORA SELECIONEI A 2. OPCAO

e vou gravar

AL-Alagoas

se vou ver o conteudo
T_UF ele vem com 2 e nao AL-Alagoas

nao tem como vir o conteudo AL-Alagoas?

Re: pegar dados do combobox?

Enviado: 22 Out 2010 11:29
por Toledo
Veja um exemplo:

Código: Selecionar todos

#include "minigui.ch"
Function Main
DEFINE WINDOW Form_1 ;
       AT 0,0 ;
       WIDTH 400 ;
       HEIGHT 200 ;
       TITLE 'ComboBox Demo' ;
       MAIN 
  @ 10,10 COMBOBOX Combo_1 ;
          WIDTH 200 ;
          ITEMS { 'AL-Alagoas' , 'SP-Sao Paulo' , 'PR-Parana' } ;
          VALUE 1 ;
          ON CHANGE MsgInfo ( Form_1.Combo_1.DisplayValue ) ;
          FONT 'Courier' SIZE 12 
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return
Abraços,

Re: pegar dados do combobox?

Enviado: 22 Out 2010 20:52
por pena
obg era isso mesmo que precisava

Re: pegar dados do combobox?

Enviado: 23 Out 2010 20:05
por lugab
Toledo, antes de mais nada releve ae , pq eu sou um zero em minigui..

Mas , por curisodade e ânsia de aprender, eu executei esse seu exemplo e gostaria de saber se tem como alterar este código para ele salvar a opção escohida do combo em uma variavel qualquer ( tipo resp=N) em seguida encerrar esta função, retornando o comando para o programa principal..

É q este código q vc postou exibe na tela a opção escolhida no combo , mas a função nunca tem fim e continua rodando..

Grato,

Gabriel

Re: pegar dados do combobox?

Enviado: 24 Out 2010 19:24
por asimoes
Olá,
Aproveitando o exemplo do Toledo, outra forma:

Código: Selecionar todos

#include "minigui.ch"
Function Main
PRIVATE aItens:={ 'AL-Alagoas' , 'SP-Sao Paulo' , 'PR-Parana' }
DEFINE WINDOW Form_1 ;
       AT 0,0 ;
       WIDTH 400 ;
       HEIGHT 200 ;
       TITLE 'ComboBox Demo' ;
       MAIN 
  @ 10,10 COMBOBOX Combo_1 ;
          WIDTH 200 ;
          ITEMS aItens ;
          VALUE 1 ;
          ON CHANGE VerItens() ;
          FONT 'Courier' SIZE 12 
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
Return

FUNCTION VerItens
MsgInfo(aItens[AScan(aItens, {|e| e = Form_1.Combo_1.DisplayValue})])
Return Nil

Re: pegar dados do combobox?

Enviado: 25 Out 2010 07:02
por Toledo
lugab escreveu:tem como alterar este código para ele salvar a opção escohida do combo em uma variavel qualquer ( tipo resp=N) em seguida encerrar esta função
Veja um exemplo:

Código: Selecionar todos

#include "minigui.ch"
DECLARE WINDOW Form_1
Declare Window Comb_1

Procedure Main()
Private cResp, nResp
DEFINE WINDOW Form_1 ;
       AT 0,0 ;
       WIDTH 373 ;
       HEIGHT 128 ;
       TITLE 'ComboBox Demo' ;
       MAIN 

  @ 30,20 BUTTON Bt_Combo ;
          CAPTION "Abrir ComboBox" ;
          ACTION  AbreCombo() ;
          WIDTH 130 HEIGHT 28

  @ 30,170 BUTTON Bt_Ver ;
           CAPTION "Ver Retorno do ComboBox" ;
           ACTION  MsgInfo("Valor: "+str(nResp)+" Conteúdo: "+cResp) ;
           WIDTH 170 HEIGHT 28

END WINDOW
Form_1.Center
Form_1.Activate
Return

Procedure AbreCombo()
DEFINE WINDOW Comb_1 ;
       AT 0,0 ;
       WIDTH 400 ;
       HEIGHT 200 ;
       TITLE 'ComboBox Demo' ;
       MODAL 

  @ 10,10 COMBOBOX Combo_1 ;
          WIDTH 200 ;
          ITEMS { 'AL-Alagoas' , 'SP-Sao Paulo' , 'PR-Parana' } ;
          VALUE 1 ;
          ON CHANGE Pega_Escolha() ;
          FONT 'Courier' SIZE 12 

END WINDOW
Comb_1.Center
Comb_1.Activate
Return Nil

Procedure Pega_Escolha()
cResp:=Comb_1.Combo_1.DisplayValue
nResp:=Comb_1.Combo_1.Value
Comb_1.release
Return Nil
Abraços,