Combobox

Delphi

12/08/2006

Ae galera, sou novo aqui e estou começando a mexer com delphi. Estou fazendo um banco de dados e não consigo executar uma idéia. Em uma das minhas tabelas eu devo citar a marca do veículo e o modelo. Eu faço uma lista de marcas no combobox (items.string) e uma lista de modelos, minha idéia eh a seguinte, quando eu seleciono uma marca (VW por exemplo) eu quero que o combobox referente ao modelo de carro só apareça carros da VW (gol, saveiro por exemplo). Alguem me da uma luz?


V1n

V1n

Curtidas 0

Respostas

Marco Salles

Marco Salles

12/08/2006

Em uma das minhas tabelas eu devo citar a marca do veículo e o modelo.


seria talves , mais interresante voce ao inves de uma tabela ter duas tabelas

Uma Tabela Marca e outra tabela Modelos , aonde estas duas tabelas possam se relacionar

este relacionamento , pode ser feito no proprio Banco , ou no proprio aplicativo.....

A solução pode ser otimizada , dependendo do tipo de banco aonde voce vai criar esta sua tabela

Mas so uma sugestão... Não começe por paradox e perder tempo..


GOSTEI 0
Ffc

Ffc

12/08/2006

Olá Marco Salles,

Neste caso vc poderia colocar o combo MARCAS ja preenchida, e no OnChange do evento ComboBox dele você preenhe a outra ComboBox referente aos modelos daquela marca.

Exemplo de uma tabela PARADOX:

// ALIMENTA COMBO MARCA
[b:d55fda1fd1]begin[/b:d55fda1fd1]
Table1.First;
while not Table1.Eof do
[b:d55fda1fd1]begin[/b:d55fda1fd1]

ComboBox1.Items.Add(Table1.FieldByName(´MARCA´).AsString);
Table1.Next;

[b:d55fda1fd1]end;[/b:d55fda1fd1]
[b:d55fda1fd1]end;[/b:d55fda1fd1]

// ALIMENTA COMBO MODELO DE ACORDO COM A BOMBO MARCA
procedure TForm1.ComboBox1Change(Sender: TObject);
[b:d55fda1fd1]begin[/b:d55fda1fd1]

Table1.First;
while not Table1.Eof do
[b:d55fda1fd1]begin[/b:d55fda1fd1]

if Table1.FieldByName(´MARCA´).AsString = ComboBox1.Text then
[b:d55fda1fd1]begin[/b:d55fda1fd1]
ComboBox1.Items.Add(Table1.FieldByName(´MODELO´).AsString);
[b:d55fda1fd1]end;[/b:d55fda1fd1]
Table1.Next;

[b:d55fda1fd1]end;[/b:d55fda1fd1]

[b:d55fda1fd1]end;[/b:d55fda1fd1]

Qualquer dúvida é só postar.


GOSTEI 0
Ffc

Ffc

12/08/2006

A resposta é para [b:3dfa7dad5d]v1n[/b:3dfa7dad5d] e por tanto peço desculpas a você[b:3dfa7dad5d] Marco Salles[/b:3dfa7dad5d], concordo também sobre o paradox seria ideal v1n vc já começar a usar um Firebird ou Postgres pois é mais seguro e profissional. Mais se é para estudo para conhecer os componentes do Delphi e como trabalhar com eles pode usar o Paradox, eu comecei por ele hehe.


GOSTEI 0
Marco Salles

Marco Salles

12/08/2006

Olhando rápido a sua resposta , acredito que ela deva funcionar .
Porem , para aplicaçoes locais e mesmo com un numero limitados de registros.

Com eu disse :

A solução pode ser [b:8fee79f28b]otimizada[/b:8fee79f28b] , dependendo do tipo de banco aonde voce vai criar esta sua tabela


nesse caso , não seria nen preciso percorre novamente os registros , para selecionar o Modelo de acordo com a Marca.. Basta fazer um Filtro usando um Outro DataSet com o Valor da Marca.... Enfim , as soluçoes são muitas , eu particularmente prefiro Ter Duas Tabelas e criar o Relacionamento


GOSTEI 0
POSTAR