Fórum Localizar item específico no ComboBox #263740

29/12/2004

0

Gostaria de localizar um item em um Combobox via cógigo.


Tecrogerio

Tecrogerio

Responder

Posts

29/12/2004

Marcelo Saviski

ComboBox.ItemIndex := ComboBox.Itens.IndexOf(´item a ser encontrado´);



Responder

Gostei + 0

29/12/2004

Tecrogerio

Marcelo vou ser mais específico

o combobox recebe na criação do form os items de uma tabela (tipo nome do cliente)

esse combobox está em um form de inclusão de dados, só que esse mesmo form é usado para alteração de algum dado da inclusão.

no caso o combobox deve retornar o que estava gravado anteriormente em uma tabela.

até recuperar beleza.

mas localizar esse item no combobox, não está funcionando mesmo com o metodo acima.


grato


Responder

Gostei + 0

29/12/2004

Tecrogerio

sobe


Responder

Gostei + 0

29/12/2004

Euclides

Olá Amigo tudo bom ??

Bom eu utilizo o mesmo comando em que o Marcelo utiliza ..... O que não esta funcionando ???? acho que este seria o único método para localizar o item dentro do combobox ......

Abraços


Responder

Gostei + 0

29/12/2004

Tecrogerio

Euclides,

o Combobox simplesmente não traz o item selecionado
entendeu.

como eu tento alterar um dado previamente cadastrado preciso que ele traga o valor gravado.

o IndexOf, seleciona o item ou apenas localiza???


Responder

Gostei + 0

29/12/2004

Euclides

Opa ,

Então o IndexOf ele localiza e tambem seleciona.

Será que existe realmente o valor que ele esta procurando ??? atente para espaços em branco no final da string isto é um diferencial tambem !!!!!

Abraços


Responder

Gostei + 0

29/12/2004

Tecrogerio

Euclides,

os itens do combobox são adicionados no OnCreate do form, e vem de uma tabela,

ao tentar localizar o item, eu busco usando o campo da mesma tabela.

não tô entendendo.


Responder

Gostei + 0

29/12/2004

Euclides

Opa,

Voce esta usando o ComboBox mesmo ou o DbComboBox ????

poderia colocar o código para agente vizualisar ????

Abraços


Responder

Gostei + 0

29/12/2004

Tecrogerio

Euclides o código está separado.

mas é assim

em um form de INCLUSÃO eu uso um COMBOBOX para listar o campo nome do cliente, que foi incluso no COMBOBOX atraves de uma query
conforme abaixo

CmbBoxClientes.Items.Clear;
DtmPrincipal.QryClientes.Prepare;
DtmPrincipal.QryClientes.Open;
While Not DtmPrincipal.QryClientes.Eof do begin
CmbBoxClientes.Items.Append(DtmPrincipal.QryClientesNomeCli.Value);
DtmPrincipal.QryClientes.Next;
end;
DtmPrincipal.QryClientes.Close;

Entendeu.

mas ao tentar ALTERAR os dados inclusos, já que uso o mesmo FORM, queria que ele retorna-se o cliente, já que busco na mesma tabela de origem.

FrmRvt.CmbBoxClientes.Items.IndexOf(DtmPrincipal.TblClienteNomeCli.Text);

Entendeu??


Responder

Gostei + 0

29/12/2004

Tecrogerio

Euclides o código está separado.

mas é assim

em um form de INCLUSÃO eu uso um COMBOBOX para listar o campo nome do cliente, que foi incluso no COMBOBOX atraves de uma query
conforme abaixo

CmbBoxClientes.Items.Clear;
DtmPrincipal.QryClientes.Prepare;
DtmPrincipal.QryClientes.Open;
While Not DtmPrincipal.QryClientes.Eof do begin
CmbBoxClientes.Items.Append(DtmPrincipal.QryClientesNomeCli.Value);
DtmPrincipal.QryClientes.Next;
end;
DtmPrincipal.QryClientes.Close;

Entendeu.

mas ao tentar ALTERAR os dados inclusos, já que uso o mesmo FORM, queria que ele retorna-se o cliente, já que busco na mesma tabela de origem.

FrmRvt.CmbBoxClientes.Items.IndexOf(DtmPrincipal.TblClienteNomeCli.Text);

Entendeu??


Responder

Gostei + 0

29/12/2004

Euclides

Entendi sim mas quando selecionar um cliente ele terá que buscar todos os dados dele no arquivo e é isto que nao esta fazendo ??????

Se puder mande esta unit pro meu email ....

eeuclides@ig.com.br

abraços


Responder

Gostei + 0

29/12/2004

Tecrogerio

valeu,


te envio depois.


Responder

Gostei + 0

29/12/2004

Andremuller

Não seria mais simples utilizar componentes DBAware?


Responder

Gostei + 0

29/12/2004

Adilsond

Pelo código que voce postou, acho que voce não colocou conforme o exemplo dado pelo Marcelo.

FrmRvt.CmbBoxClientes.ItemIndex := FrmRvt.CmbBoxClientes.Items.IndexOf(DtmPrincipal.TblClienteNomeCli.Text);

Ou seja, o IndexOf localiza e retorna o índice onde se encontra o cliente e este índice é deve ser passado para o ItemIndex para que o mesmo seja colocado como corrente.


Responder

Gostei + 0

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

Aceitar