Você está trazendo os dados de algum banco de dados? Eu uso a seguinte técnica para fazer isso que você quer:
1) Crio um tipo de dados que equivale ao que quero representar 2) Crio uma função que seleciona os dados da tabela (por exemplo o ID e a Descrição) 3) A saída dessa função é preencher um array (por exemplo) onde cada item do array é do tipo criado no passo 1 4) Com os dados selecionados, crio uma função que alimenta o ComboBox com os itens que carreguei no array do item 3 5) No ComboBox faço altero o evento OnSelectItem para buscar o ID do item, com base na descrição do item, dentro do array que criei. É claro que dá pra fazer muitas otimizações dentro desse modelo. Se você não está trabalhando ainda com bancos de dados este acho que é um dos melhores jeitos de trabalhar. Dá pra fazer a mesma coisa que fiz, mas usando ClientDataSet. Simplifica bem mais o processo que passei pois vc usa funções disponíveis no proprio TClientDataSet ao invés de um tipo específico (criado no passo 1), criar e preencher um array (passos 2 e 3) e nos passos 4 e 5 você pode fazer uma alteração significativa, pois pode usar as funções de busca que já existem ao invés de inventar as suas próprias. Tanto em um quanto em outro modelo, dá pra achar material bem detalhado no Google. Basta procurar por ClientDataSet em memória ou ClientDataSet sem banco de dados. []'s Ricardo. _________________________________________________________________ "Vamos ajudar o Grupo e o Yahoo! Apague o conteúdo irrelevante!" --- Em sáb, 13/12/08, Rogerio Rios Pessanha <rogerio_r...@yahoo.com.br> escreveu: De: Rogerio Rios Pessanha <rogerio_r...@yahoo.com.br> Assunto: [delphi-br] Re: Retornar chave primaria de um combobox Para: delphi-br@yahoogrupos.com.br Data: Sábado, 13 de Dezembro de 2008, 8:33 Bom Dia Emanuel. Bem, o DBLOOKUPCOMBOBOX( DATASOURCE- DATAFIELD- LISTSOURCE- LISTFIELD - KEYFIELD- ele altera os dados diretamente na tabela , ok ? Ou não ? Se altera não me serve) eu conheço mas acho que não serve. Deixa eu tentar explicar : Eu queria que o usuario selecionasse em 1 combo o nome do aluno e em outro combo o livro que o aluno pegou. E aí eu queria usar os campos PK da tabela aluno e livro de acordo com o que foi escolhido nos combos ( quando eu digo usar os campos PK quero dizer usá-los para filtragem - filter ou select - ou fazer buscas com findkey por exemplo). Os alunos não sabem TQUERY-SELECT então passar algo bem simples as vezes dá mais trabalho do que algo avançado. --- Em delphi...@yahoogrup os.com.br, Coutinho - Yahoo <emanuelcoutinho@ ...> escreveu > > Colega... > O componente dbLookupCombo faz isso... > Se vc está fazendo um campo lookup, que na minha opinião é a melhor > pedida, ao arrastar o TField da janelinha de campos da tabela para o > form, ele já trás um pomponente lookupCombobox, para vc poder selecionar > pelo nome do do aluno, escrevendo no campo que vc está editando a > "matrícula", ou chave primária que está usando na sua tabela. > Você sabe definir um campo lookup na sua tabela? > > Sds > Emanuel Couitnho > > > Rogerio Rios Pessanha escreveu: > > > > Tenho um combobox abastecido com o campo nomealuno. Queria que ao ser > > selecionado algum item desse combo o mesmo me retornasse não o nome do > > aluno mas a CHAVE PRIMARIA da tabela em questão ( campo ncodaluno). > > > Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]