Hola dalyla2010.
Fijate si esto te sirve o te ayuda a hacer lo que estas buscando. El ejemplo usa un TComboBox, TDBLookupCombobox, TDataSource y un DataSet,
también agrego la propiedad ItemIndex_ID.
Código Delphi
[-]
...
type
TComboBox = class(StdCtrls.TComboBox)
private
procedure SetItem_ID(Item_ID: Integer);
function GetItem_ID: Integer;
public
property ItemIndex_ID: Integer read GetItem_ID write SetItem_ID;
end;
TForm1 = class(TForm)
DataSource1: TDataSource;
ComboBox1: TComboBox;
DBLookupComboBox1: TDBLookupComboBox;
procedure FormShow(Sender: TObject);
procedure DBLookupComboBox1CloseUp(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
...
end;
var
Form1: TForm1;
implementation
function TComboBox.GetItem_ID: Integer;
begin
Result:= Integer(Items.Objects[ItemIndex]);
end;
procedure TComboBox.SetItem_ID(Item_ID: Integer);
begin
if Item_ID in [0.. Items.Count-1] then
ItemIndex:= Items.IndexOfObject(TObject(Item_ID));
end;
procedure TForm1.FormShow(Sender: TObject);
begin
while not DataSet.Eof do
begin
ComboBox1.Items.AddObject(DataSet.FieldByName('NOMBRE_PAIS').AsString,
TObject(DataSet.FieldByName('PAIS_ID').AsInteger));
DataSet.Next;
end;
end;
procedure TForm1.DBLookupComboBox1CloseUp(Sender: TObject);
begin
ComboBox1.ItemIndex_ID:= DataSet.FieldByName('PAIS_ID').AsInteger;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
DBLookupComboBox1.KeyValue:= ComboBox1.ItemIndex_ID;
end;
...
Si hay algo en lo que no me expliqué bién, ajusto el ejemplo para alguna tabla que venga con Delphi y te adjunto los archivos.
Un saludo.