Fórum Alimentar ComboBox #465939
06/01/2014
0
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
Curtir tópico
+ 0Posts
06/01/2014
Leandro Chiodini
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
06/01/2014
Douglas
Poderia ir direto ao ponto, para que eu possa ajuda-lo.
Gostei + 0
06/01/2014
Ale Scherer
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
06/01/2014
Leandro Chiodini
Chegasse a Ler sobre o DBcomboBox,
Assim voce coloca o que quiser para o usuario,
sendo uma coluna da base.
Att,
Chiodini
Gostei + 0
06/01/2014
Ale Scherer
Gostei + 0
06/01/2014
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
06/01/2014
Ale Scherer
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
06/01/2014
Douglas
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
06/01/2014
Alan Souza
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
06/01/2014
Ale Scherer
É isso mesmo que eu quero...
Vou testar, qualquer coisa posto aqui...
Abs
Gostei + 0
06/01/2014
Deivison Melo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)