Fórum Alimentar ComboBox #465939

06/01/2014

0

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

Responder

Posts

06/01/2014

Leandro Chiodini

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
Responder

Gostei + 0

06/01/2014

Douglas

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

Gostei + 0

06/01/2014

Ale Scherer

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
Responder

Gostei + 0

06/01/2014

Leandro Chiodini

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

Att,

Chiodini
Responder

Gostei + 0

06/01/2014

Ale Scherer

Leandro, vou ver agora... Logo posto se consegui ou nao
Responder

Gostei + 0

06/01/2014

Douglas

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.


Responder

Gostei + 0

06/01/2014

Ale Scherer

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?
Responder

Gostei + 0

06/01/2014

Douglas

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;




Responder

Gostei + 0

06/01/2014

Alan Souza

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.
Responder

Gostei + 0

06/01/2014

Ale Scherer

Alanps,

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

Abs
Responder

Gostei + 0

06/01/2014

Deivison Melo

Finalizando o tópico!!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar