GARANTIR DESCONTO

Fórum Como preencho DBCombobox com os dados do banco ? #353020

04/02/2008

0

Pessoal, sou iniciante em Delphi portanto minha dúvida pode ser um tanto básica.

Montei um form e nele tenho 1 DBCombobox que carrega o nome de várias cidades e ao selecionar uma cidade quero mostrar os bairros dela num DBGrid.

Estou usando ClientDataSet e banco Firebird.

Meu primeiro problema é popular o DBCombobox com os dados vindos do ClientDataSet.

Eu gostaria de usar o ClientDataSet pois ele vai me ajudar a trabalhar com outros componentes vinculados ao banco de dados, pois quando o usuário selecionar algum valor no DBCombobox o ClientDataSet vai apontar o restante dos campos do meu form (que depois vou colocar no form) para o registro selecionado.


Agradeço a quem puder ajudar. Obrigado !


Gustavo_marcon

Gustavo_marcon

Responder

Post mais votado

08/02/2008

[quote:8777643455=´gustavo_marcon´][quote:8777643455=´Aroldo Zanela´]Colega, ListSource - É a fonte de dados; DataSource - É onde deverá aplicar as mudanças.


Aroldo, eu tenho um DataSource que coloquei na tela que é minha fonte de dados, ou seja é o valor da minha propriedade ListSource, mas não entendi quando vc disse que na propriedade DataSource eu coloco o DS onde deverá aplicar as mudanças. pois eu n quero salvar os dados em lugar nenhum, mas só popular o combo com o valor vindo do meu DataSource.[/quote:8777643455]

Mas vcs entenderam o que eu quis dizer no post acima ???

Eu nao quero colocar os dados de uma tabela pra outra, só quero popular um combo, entao nao entendi o porque de precisar dois DataSources.[/quote:8777643455]

Colega,

Então faça o seguinte:

KeyField -> Campo chave que o componente obtem o valor para atribuir a propriedade KeyValue após a seleção de um item;
ListField -> Campo que será exibido na listagem
ListSource -> Origem dos dados


Aroldo Zanela

Aroldo Zanela
Responder

Gostei + 1

Mais Posts

04/02/2008

Dbergkamps10

Olá,
tente assim:
TableCidades.first;
while not TableCidades.Eof do
 begin
 DbCombox1.Items.add(TableCidadesNome.AsString);
 tableCidades.next;
 end;

Espero ter ajudado...

Att
Dalton


Responder

Gostei + 0

05/02/2008

Aroldo Zanela

Colega,

Substitua o dbComboBox por um dbLookUpCombo.


Responder

Gostei + 0

06/02/2008

Gustavo_marcon

Quando coloco um DbLookupCombo ele aparece desabilitado na tela, não entendi o porque.

Ele tem duas propriedades, uma chamada ListSource e outra chamada DataSource , qual devo informar e com o que ?

Eu coloquei na tela um DataSource e este liguei com meu ClientDataSet que está num DataModule, mas não funcionou.


Responder

Gostei + 0

06/02/2008

Aroldo Zanela

Colega,

ListSource - É a fonte de dados;
DataSource - É onde deverá aplicar as mudanças.


Responder

Gostei + 0

07/02/2008

Gustavo_marcon

[quote:2df3c07381=´Aroldo Zanela´]Colega,

ListSource - É a fonte de dados;
DataSource - É onde deverá aplicar as mudanças.[/quote:2df3c07381]

Aroldo, eu tenho um DataSource que coloquei na tela que é minha fonte de dados, ou seja é o valor da minha propriedade ListSource, mas não entendi quando vc disse que na propriedade DataSource eu coloco o DS onde deverá aplicar as mudanças. pois eu n quero salvar os dados em lugar nenhum, mas só popular o combo com o valor vindo do meu DataSource.


Responder

Gostei + 0

07/02/2008

Andepunk

faz assim é o melhor que tem e mais facil...

usa um TFlatDBLookupCombo liga uma DataSource nele em events lookupsource carregando todos os clientes em um SQL, depois no form show voce colocar assim: nomedaquery.Open;

qualquer duvida manda aew existem milhoes de componentes em delphi para fazer isso...t+


Responder

Gostei + 0

07/02/2008

Onjahyr

[quote:3651074a5a=´Aroldo Zanela´]Colega,

Substitua o dbComboBox por um dbLookUpCombo.[/quote:3651074a5a]

Sem complicar, o colega tá mostrando um componente que não vem com o Delphi, esse tal de Flat....

Segui a dica do [b:3651074a5a]Aroldo Zanela[/b:3651074a5a] que vai funcionar, é a mesma coisa só que não é Flat e não precisa procurar componentes de terceiros...


Responder

Gostei + 0

07/02/2008

Andepunk

[quote:942c4d8c8f=´Aroldo Zanela´]Colega, Substitua o dbComboBox por um dbLookUpCombo.


Sem complicar, o colega tá mostrando um componente que não vem com o Delphi, esse tal de Flat....

Segui a dica do [b:942c4d8c8f]Aroldo Zanela[/b:942c4d8c8f] que vai funcionar, é a mesma coisa só que não é Flat e não precisa procurar componentes de terceiros...[/quote:942c4d8c8f]

Sim e o que isso tem a ver... voce nao vai querer ficar a vida toda usando os recursos pobres que o delphi traz neh, fala serio amigo....


Responder

Gostei + 0

07/02/2008

Onjahyr

Bom, não vou criar caso com isso, cada um tem sua opinião. Eu prefiro criar um programa onde vou ter compatibilidade com as outras versões do Delphi. Se eu quiser implementar funcionalidades eu mesmo crio meus componentes. Claro, existem componentes que vale a pena, mas enfeite?! Prá mim não vale a pena.... (não vamos criar flames... eu disse é minha opinião).

Ok


Responder

Gostei + 0

07/02/2008

Gustavo_marcon

[quote:a0f0d2c70c=´Aroldo Zanela´]Colega, ListSource - É a fonte de dados; DataSource - É onde deverá aplicar as mudanças.


Aroldo, eu tenho um DataSource que coloquei na tela que é minha fonte de dados, ou seja é o valor da minha propriedade ListSource, mas não entendi quando vc disse que na propriedade DataSource eu coloco o DS onde deverá aplicar as mudanças. pois eu n quero salvar os dados em lugar nenhum, mas só popular o combo com o valor vindo do meu DataSource.[/quote:a0f0d2c70c]

Mas vcs entenderam o que eu quis dizer no post acima ???

Eu nao quero colocar os dados de uma tabela pra outra, só quero popular um combo, entao nao entendi o porque de precisar dois DataSources.


Responder

Gostei + 0

07/02/2008

Onjahyr

Bom, se for o que entendi, então em vez de usar um DBCombo, por quê não usar um simples TComboBox, no onshow da form você chama os dados (referente ao campo desejado) para dentro dele, no evento onChange do TComboBox você faz a referência para seu DBGrid mostrar o que deseja.

[b:92f737d1e6]Para preencher o TComboBox com todos os registros de um campo você lê este artigo:[/b:92f737d1e6]
[url]https://www.devmedia.com.br/articles/viewcomp.asp?comp=2592[/url]

No evento onChange do TComboBox você faz um [b:92f737d1e6]case[/b:92f737d1e6] para chamar na tabela o que deseja, automaticamente vai aparecer no DBGrid (se estiver ligado a tabela)...


Bom, se foi isso que eu entendi.

Blz.


Responder

Gostei + 0

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

Aceitar