PDA

Ver la Versión Completa : combobox al seleccionar item, aparezca lista dependiendo item del primer combobox


NovaV2
10-02-2016, 21:57:30
Hola, acudo a este foro para pedir ayuda sobre un problema con los combo box. Realmente soy muuuuuuuuuy novato en este lenguaje de programacion ya que apenas he empezado, no llevo ni una semana en esto XD, por lo cual tal vez mi pregunta sea la más estupida del mundo, pero bueno.

Lo que quiero es que mi combo box al seleccionar un item de este aparezca una lista dependiendo del item que seleccione.

Me explico :

Estoy haciendo un formulario en el cual tengo un combo box, en ese combo box estan las algunas marcas populares de carros y quiero que cuando seleccione una marca, por ejemplo Audi, en otro combo Box salgan los modelos de Audi y si selecciona otra marca salga los modelos de esa marca. Como lograría esto?

Gracias de antemano y disculpen si mi pregunta es muy basica xD.

Casimiro Notevi
10-02-2016, 23:18:28
http://www.clubdelphi.com/foros/showthread.php?t=89805

BDWONG
11-02-2016, 02:28:08
Hola te dejo este ejemplo usando arreglos uno simple para las marcas y uno de dos dimensiones para los modelos
si tienes dudas me avisas

https://i.gyazo.com/8f648faf880f908c9472fa9d004d0c53.gif


var
Form1: TForm1;

//Marcas de los autos
marcas:array[0..2] of string=('Toyota','Chevrolet','Ford');

//Modelos de los autos
modelos:array[0..2,0..2]of string=(('Alphard','Altezza','Auris'),
('Bel Air','Beretta','Bison'),
('Capri','C-Max','Corcel'));

implementation

uses Math;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
//Llenamos el comboBox1 con el nombre de las marcas
For i:=low(marcas) to High(marcas) do
begin
ComboBox1.Items.Add(marcas[i]);
end;
end;

procedure TForm1.ComboBox1Change(Sender: TObject);
var
i:integer;
begin
//Limpiacmos el comboBox2
ComboBox2.Clear;
//Si no marcas en el comboBox1 o no se ha seleccionado alguna marca salimos
If ((ComboBox1.Items.Count=0) or (ComboBox1.ItemIndex=-1)) then Exit;

//Rellenamos el comboxBox2 con los modelos de acuerdo a la marca
For i:=low(modelos[0]) to High(modelos[0]) do
begin
ComboBox2.Items.Add(modelos[ComboBox1.itemIndex,i]);
end;
//Cambiamos el text del ComboBox2 para que el usuario visualise el efecto de cambio
ComboBox2.Text:=modelos[ComboBox1.itemIndex,0];
end;

end.


Saludos...:)