Hola a todos, ¿hay forma de lograr que en un ComboBox guardar un valor aparte del que se muestra para luego obtenerlo?, algo como esto:
ComboBox.Items -> Muestra la lista de ciudades (Por ejemplo)
ComboBox.Items.Data -> Guardar el ID de la ciudad
lo que quiero es que al seleccionar una ciudad en el combo tambien obtenga el ID de la mismas para guardarla en otra tabla, para esta situación no me vale el Uso del DBLookUpComboBox ni el DBListBox. Es parecido al Combo de HTML:
<Option value="9999">Madrid</option>
Aquí se muestra el dato Madrid y el value es el ID de la misma, espero se entienda.
Fleon Xd
[RESUELTO] Dos valores en un TComboBox
Comenzado por
Fleon
, jul 19 2011 11:44
7 respuestas en este tema
#1
Escrito 19 julio 2011 - 11:44
#2
Escrito 19 julio 2011 - 11:57
Eso lo hace el DBlookupComboBox ligandolo con la otra tabla en las propiedades DataField y DataSource.
Salud OS
Salud OS
#3
Escrito 19 julio 2011 - 11:59
delphi
type TMiObjeto = class(TObject) //le puedes poner el nombre que quieras siempre y cuando empiece con una "T" ID: Integer; end; procedure TForm1.AddToCB; var obj: TMiObjeto; begin with DataSet do begin //Donde dataset es TTable que uses First; while not eof do begin obj := TMiObjeto.Create; obj.ID := FieldByName('ID').AsInteger; //Campo Id de la tabla ComboBox1.Items.AddObject(FieldByName('NAME').AsString, TMiObjeto(obj)); obj.Free; Next; end; //While...Not end;// with...Do end;
Saludos.
#4
Escrito 19 julio 2011 - 12:06
No se si con un combobox podrias realizar eso, pero podrias ocupar un ClientDataSet con un dbLookupCombobox
#5
Escrito 19 julio 2011 - 12:19
No se si con un combobox podrias realizar eso, pero podrias ocupar un ClientDataSet con un dbLookupCombobox
Pues lo acabo de demostrar en el post anterior , sólo que me faltó colocar cómo obtener el valor o ID de cada Ciudad en el ComboBox, sería así:
delphi
procedure TForm1.GetIDFromCB(cID: Integer); var obj: TMiObjeto; begin Obj := ComboBox1.Items.Objects[cID] as TMiObjeto; CityID := obj.ID; //CityID es una variable Global end;
Saludos.
#6
Escrito 19 julio 2011 - 12:40
jejej pero no es con el combobox como tal, ademas si ya tienes los datos ligados a una tabla porque no usar un dbLookupCombobox y ahorrarnos esfuerzo
#7
Escrito 19 julio 2011 - 12:53
Tal como lo indica Fleon, el DBLookUpComboBox no le sirve para lo que está buscando .
#8
Escrito 19 julio 2011 - 02:06
He probado el código de enecumene y me funcionado de perlas, ¡Muchas Gracias!