Pues creo que se puede hacerlo tranquilamente con un TComboBox normal, y supongo que no entendiste el comentario de
Neftali al decirte que podrias utilizar la
propiedad Object de los item (TStrings) lo unico malo con con dicha propiedad es que no
acepta string como objeto (al menos hay problemas con los string), con numeros o otros objetos no hay problema; pero tranquilamente puedes resolver esa situacion creandote una clase que tenga los campos que veas necesario Por ejemplo:
Código Delphi
[-]unit Unit2;
interface
Type
TMyClase =Class Private
aCodigo:Integer;
aNombre:String;
aSigla:String;
Public
constructor Create();
Property Codigo:Integer read aCodigo write aCodigo;
Property Nombre:String read aNombre write aNombre;
Property Sigla:String read aSigla write aSigla;
end;
implementation
constructor TMyClase.Create();
begin
aCodigo:=0;
aNombre:='';
aSigla:='';
end;
end.
Es una clase ejemplo, tú ya ves si necesitas guardar otros campos o quitar los ya existentes.
Ahora lo que vamos hacer es utilizar
objetos de la anterior clase y adicionarlo alos item de mi combobox:
Para adicionar un objeto a los items de mi comboBox:
Código Delphi
[-]var MiObjeto:TMyClase;
begin
MiObjeto:=TMyClase.Create;
MiObjeto.Codigo:=123;
MiObjeto.Nombre:='España';
MiObjeto.Sigla:='ESP';
ComboBox1.Items.AddObject(MiObjeto.Nombre,MiObjeto);end;
Para recuperar un objeto de los item y mostrar sus campos:
Código Delphi
[-]var MiObjeto:TMyClase;
begin
if ComboBox1.ItemIndex>-1 then begin
MiObjeto:=TMyClase(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);
ShowMessage(IntToStr(MiObjeto.Codigo)); ShowMessage(MiObjeto.Nombre); ShowMessage(MiObjeto.Sigla); end;
end;
Espero que se haya entendido.
Saludos...