Alimentar ComboBox

Delphi

06/01/2014

Olá pessoal,

Estou estudando Delphi, e quero fazer o seguinte:

- No meu BD, o estado precisa ser gravado no formato RS, SC, PR, SP, RJ, etc...
- Mas no meu ComboBox quero exibir o nome dos estados, exemplo: Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, Rio de Janeiro, etc...

Como faço isso?

Tentei CBestado.Items.AddObject('Rio Grande do Sul', TObject('RS')) mas no lugar do RS só aceita inteiros...
Alguém pode mandar um exemplo de como faço para vincular isso?

Abs
Ale Scherer

Ale Scherer

Curtidas 0

Respostas

Leandro Chiodini

Leandro Chiodini

06/01/2014

Bom dia,
Nao consigo te passar um exemplo agora,
mais da uma pesquisadinha sobre

DBcombobox

que faz o link direto com teu banco de dados.
att.
Chiodini
GOSTEI 0
Douglas

Douglas

06/01/2014

Ale Scherer, não consegui compreender muito bem a sua necessidade.
Poderia ir direto ao ponto, para que eu possa ajuda-lo.
GOSTEI 0
Ale Scherer

Ale Scherer

06/01/2014

Boa tarde Douglas,

Imagine a seguinte situação:

- Tenho um ComboBox e um botão.
- Quero que para o usuário apareça a listagem de estados, exemplo: Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, etc...
- Mas ao clicar no botão quero que o sistema mostre sigla do estado que o usuário escolheu, exemplo: RS, SC, PR, SP

Consegui explicar melhor?
Abs
GOSTEI 0
Leandro Chiodini

Leandro Chiodini

06/01/2014

Opa
Chegasse a Ler sobre o DBcomboBox,
Assim voce coloca o que quiser para o usuario,
sendo uma coluna da base.

Att,

Chiodini
GOSTEI 0
Ale Scherer

Ale Scherer

06/01/2014

Leandro, vou ver agora... Logo posto se consegui ou nao
GOSTEI 0
Douglas

Douglas

06/01/2014

Boa tarde Douglas,

Imagine a seguinte situação:

- Tenho um ComboBox e um botão.
- Quero que para o usuário apareça a listagem de estados, exemplo: Rio Grande do Sul, Santa Catarina, Paraná, São Paulo, etc...
- Mas ao clicar no botão quero que o sistema mostre sigla do estado que o usuário escolheu, exemplo: RS, SC, PR, SP

Consegui explicar melhor?
Abs


Ale Scherer, agora entendi. Você pode fazer da seguinte forma, Selecione o seu comobox e vá na propriedade items, cadastre todos os estados
Após este procedimento, no seu botão programe o seguinte código abaixo.


procedure TForm1.Button1Click(Sender: TObject);
begin
  case ComboBox1.ItemIndex of
    0 : ComboBox1.Text := 'RJ';
    1 : ComboBox1.Text := 'SP';
    2 : ComboBox1.Text := 'RS';
    3 : ComboBox1.Text := 'SC';
    // E ASSIM POR DIANTE, TEM QUE SER DE ACORDO COM A LISTA QUE VOCE INSERIU
    // NA PROPRIEDADE ITEMS DO SEU COMBOBOX.
  end;
end;



Espero ter entendido sua necessidade. Aguardo o seu feedback.


GOSTEI 0
Ale Scherer

Ale Scherer

06/01/2014

Douglas, é mais ou menos isso...

Gostaria que ficasse assim:


procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
'RJ' : ComboBox1.Text := 'Rio de Janeiro';
'SP' : ComboBox1.Text := 'São Paulo';
'RS' : ComboBox1.Text := 'Rio Grande do Sul';
'SC' : ComboBox1.Text := 'Santa Catarina';
// E ASSIM POR DIANTE, TEM QUE SER DE ACORDO COM A LISTA QUE VOCE INSERIU
// NA PROPRIEDADE ITEMS DO SEU COMBOBOX.
end;
end;



Ou será que vou ter que instalar algum componente p/ conseguir fazer isso?
GOSTEI 0
Douglas

Douglas

06/01/2014

Douglas, é mais ou menos isso...

Gostaria que ficasse assim:


procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
'RJ' : ComboBox1.Text := 'Rio de Janeiro';
'SP' : ComboBox1.Text := 'São Paulo';
'RS' : ComboBox1.Text := 'Rio Grande do Sul';
'SC' : ComboBox1.Text := 'Santa Catarina';
// E ASSIM POR DIANTE, TEM QUE SER DE ACORDO COM A LISTA QUE VOCE INSERIU
// NA PROPRIEDADE ITEMS DO SEU COMBOBOX.
end;
end;



Ou será que vou ter que instalar algum componente p/ conseguir fazer isso?


Ale Scherer, a numeração dentro do case identifica a posição do item atual marcado no combobox e além disso o case só admite valores do tipo inteiro. O mais
fácil é você só colocar ao contrário a forma que te expliquei anteriormente. Cadastre todas as siglas na propriedades items do combobox e coloque de acordo
com a ordem que você cadastrou.


procedure TForm1.Button1Click(Sender: TObject);
begin
case ComboBox1.ItemIndex of
0 : ComboBox1.Text := 'Rio de Janeiro';
1 : ComboBox1.Text := 'São Paulo';
2 : ComboBox1.Text := 'Rio Grande do Sul';
3 : ComboBox1.Text := 'Santa Catarina';
// E ASSIM POR DIANTE, TEM QUE SER DE ACORDO COM A LISTA QUE VOCE INSERIU
// NA PROPRIEDADE ITEMS DO SEU COMBOBOX.
end;
end;




GOSTEI 0
Alan Souza

Alan Souza

06/01/2014

dá para adicionar pelo AddObjects sim, só é necessário utilizar um typecast:

  CBestado.Items.AddObject('Rio Grande do Sul', TObject(PChar('RS')));


para recuperar o objeto como a sua sigla:

  PChar(CBestado.Items.Objects[CBestado.ItemIndex]);


apesar que a solução com componentes de conexão com o banco de dados seja mais elegante.
GOSTEI 0
Ale Scherer

Ale Scherer

06/01/2014

Alanps,

É isso mesmo que eu quero...
Vou testar, qualquer coisa posto aqui...

Abs
GOSTEI 0
Deivison Melo

Deivison Melo

06/01/2014

Finalizando o tópico!!
GOSTEI 0
POSTAR