Localizar item específico no ComboBox

Delphi

29/12/2004

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


Tecrogerio

Tecrogerio

Curtidas 0

Respostas

Marcelo Saviski

Marcelo Saviski

29/12/2004

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



GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

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


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

sobe


GOSTEI 0
Euclides

Euclides

29/12/2004

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


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

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


GOSTEI 0
Euclides

Euclides

29/12/2004

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


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

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.


GOSTEI 0
Euclides

Euclides

29/12/2004

Opa,

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

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

Abraços


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

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


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

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


GOSTEI 0
Euclides

Euclides

29/12/2004

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


GOSTEI 0
Tecrogerio

Tecrogerio

29/12/2004

valeu,


te envio depois.


GOSTEI 0
Andremuller

Andremuller

29/12/2004

Não seria mais simples utilizar componentes DBAware?


GOSTEI 0
Adilsond

Adilsond

29/12/2004

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.


GOSTEI 0
POSTAR