Ver Mensaje Individual
  #4  
Antiguo 11-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Arrow

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

{ TMyClase }

constructor TMyClase.Create();
begin
//Inicio los valores por defecto
  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);//adiciona mi objeto alos item del ComboBox
end;
Para recuperar un objeto de los item y mostrar sus campos:
Código Delphi [-]
var MiObjeto:TMyClase;
begin
    if ComboBox1.ItemIndex>-1 then //if hay un item selecionado
    begin
      MiObjeto:=TMyClase(ComboBox1.Items.Objects[ComboBox1.ItemIndex]);{obtengo el objeto de item selecionado
 haciendo casting}
      ShowMessage(IntToStr(MiObjeto.Codigo));//<--muestro el codigo
      ShowMessage(MiObjeto.Nombre);//<--muestro el Nombre
      ShowMessage(MiObjeto.Sigla);//<--muestro La Sigla
    end;
end;
Espero que se haya entendido.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 11-01-2010 a las 16:15:36.
Responder Con Cita