Fórum Recuperar valor em Combobox com 2 colunas String #622462

11/09/2024

0

Num ComboBox eu carrego:

COD_BANCO: esse campo é string, pois é o código do banco (ex: Sicredi é 748, Banco do Brasil é 001)
NOME string

1
2
3
4
5
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

Renan

Responder

Post mais votado

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

1
2
3
4
5
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?

Ler Mais...



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

Raimundo Pereira

Raimundo Pereira
Responder

Gostei + 1

Mais Posts

12/09/2024

Renan

Olá Raimundo.

Obrigado pela dica, funciona bem.
Responder

Gostei + 0

24/09/2024

Renan

Acabei fazendo umas mudanças aqui.

dentro de um while eu populo o combo

1
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));


Para obter o código do item selecionado eu uso

1
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

1
ComboBox.ItemIndex := Variavel

Responder

Gostei + 0

25/09/2024

Raimundo Pereira

Acabei fazendo umas mudanças aqui.

dentro de um while eu populo o combo

1
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));


Para obter o código do item selecionado eu uso

1
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

1
ComboBox.ItemIndex := Variavel

Ler Mais...



Tente assim :: ComboBox.ItemIndex := ComboBox.Items.IndexOf(variavel);
Responder

Gostei + 0

25/09/2024

Raimundo Pereira

Acabei fazendo umas mudanças aqui.

dentro de um while eu populo o combo

1
ComboBox.Items.AddObject(TabelaProdutosNOME.AsString,TObject(TabelaProdutosCODIGO.AsInteger));


Para obter o código do item selecionado eu uso

1
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

1
ComboBox.ItemIndex := Variavel

Ler Mais...



Tente assim :: ComboBox.ItemIndex := ComboBox.Items.IndexOf(variavel);

Ler Mais...


QQ Coisa dá um grito no discord : oficialrcp
Daí fazemos uma call em seguida posta as novidades aqui
Responder

Gostei + 0

26/09/2024

Renan

Olá, Raimundo.

Infelizmente não funciona.
Resolvi usar um DbLookupComboBox, assim no create do form eu faço o seguinte

1
DBLookupComboBox1.KeyValue := FrmDm.qrConfigCONTA_INTERNA.AsInteger;
Responder

Gostei + 1

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

Aceitar