Recuperar valor em Combobox com 2 colunas String
Num ComboBox eu carrego:
COD_BANCO: esse campo é string, pois é o código do banco (ex: Sicredi é 748, Banco do Brasil é 001)
NOME string
O problema é que não estou conseguindo recuperar esse codigo do banco para armazenar numa variavel.
Alguém sabe se é possivel?
COD_BANCO: esse campo é string, pois é o código do banco (ex: Sicredi é 748, Banco do Brasil é 001)
NOME string
while not Qry.eof do begin cbBancoOrigem.Items.Add(Qry.FieldByName('COD_BANCO').AsString+ ' - '+ Qry.FieldByName('NOME').AsString); Qry.Next; end;
O problema é que não estou conseguindo recuperar esse codigo do banco para armazenar numa variavel.
Alguém sabe se é possivel?
Renan
Curtidas 0
Melhor post
Raimundo Pereira
11/09/2024
Num ComboBox eu carrego:
COD_BANCO: esse campo é string, pois é o código do banco (ex: Sicredi é 748, Banco do Brasil é 001)
NOME string
O problema é que não estou conseguindo recuperar esse codigo do banco para armazenar numa variavel.
Alguém sabe se é possivel?
COD_BANCO: esse campo é string, pois é o código do banco (ex: Sicredi é 748, Banco do Brasil é 001)
NOME string
while not Qry.eof do begin cbBancoOrigem.Items.Add(Qry.FieldByName('COD_BANCO').AsString+ ' - '+ Qry.FieldByName('NOME').AsString); Qry.Next; end;
O problema é que não estou conseguindo recuperar esse codigo do banco para armazenar numa variavel.
Alguém sabe se é possivel?
Renan, o código acima apenas adiciona os dados formatados no cbBancoOrigem.
Supondo que esteja tentando coletar o código do banco ao selecionar o registro ali no cbBancoOrigem
Uma opção é criar uma função exemplo:::
function ExtrairCodigoBanco(ComboBox: TComboBox): string;
var
SelectedItem: string;
PosSeparador: Integer;
begin
// Obtém o item selecionado no ComboBox
SelectedItem := ComboBox.Text;
// Localiza a posição do separador " - "
PosSeparador := Pos(' - ', SelectedItem);
// Se o separador for encontrado, extrai o código antes dele
if PosSeparador > 0 then
Result := Copy(SelectedItem, 1, PosSeparador - 1)
else
Result := ''; // Se não encontrar, retorna uma string vazia
end;
No evento Change do cbBancoOrigem:::
procedure TForm1.cbBancoOrigemChange(Sender: TObject);
var
CodigoBanco: string;
begin
// Extrai o código do banco do item selecionado no ComboBox
CodigoBanco := ExtrairCodigoBanco(cbBancoOrigem);
// Exibe o código em uma mensagem ou use conforme necessário
ShowMessage('Código do banco selecionado: ' + CodigoBanco);
end;
Espero que o ajude ou dê uma Luz
GOSTEI 1
Mais Respostas
Renan
11/09/2024
Olá Raimundo.
Obrigado pela dica, funciona bem.
Obrigado pela dica, funciona bem.
GOSTEI 0
Renan
11/09/2024
Acabei fazendo umas mudanças aqui.
dentro de um while eu populo o combo
Para obter o código do item selecionado eu uso
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
dentro de um while eu populo o combo
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));
Para obter o código do item selecionado eu uso
Variavel:=Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
ComboBox.ItemIndex := Variavel
GOSTEI 0
Raimundo Pereira
11/09/2024
Acabei fazendo umas mudanças aqui.
dentro de um while eu populo o combo
Para obter o código do item selecionado eu uso
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
dentro de um while eu populo o combo
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));
Para obter o código do item selecionado eu uso
Variavel:=Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
ComboBox.ItemIndex := Variavel
Tente assim :: ComboBox.ItemIndex := ComboBox.Items.IndexOf(variavel);
GOSTEI 0
Raimundo Pereira
11/09/2024
Acabei fazendo umas mudanças aqui.
dentro de um while eu populo o combo
Para obter o código do item selecionado eu uso
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
dentro de um while eu populo o combo
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));
Para obter o código do item selecionado eu uso
Variavel:=Integer(ComboBox.Items.Objects[ComboBox.ItemIndex]);
Até aí tudo bem.
Porém, ao acessar o form onde tenho esse ComboBox, eu preciso buscar o codigo que está gravado no banco e então fazer o ComboBox mostrar o respectivo item.
Isso não funciona, pois pega o ItemIndex e não o codigo do objeto
ComboBox.ItemIndex := Variavel
Tente assim :: ComboBox.ItemIndex := ComboBox.Items.IndexOf(variavel);
QQ Coisa dá um grito no discord : oficialrcp
Daí fazemos uma call em seguida posta as novidades aqui
GOSTEI 0
Renan
11/09/2024
Olá, Raimundo.
Infelizmente não funciona.
Resolvi usar um DbLookupComboBox, assim no create do form eu faço o seguinte
Infelizmente não funciona.
Resolvi usar um DbLookupComboBox, assim no create do form eu faço o seguinte
DBLookupComboBox1.KeyValue := FrmDm.qrConfigCONTA_INTERNA.AsInteger;
GOSTEI 1