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]

Responder a