PDA

Ver la Versión Completa : Obtener el valor mi tabla con un combobox


novato_erick
07-09-2012, 23:54:34
Hola a todos nuevamente:


mi intensión es lograr obtener el ID de mi tabla ECIVIL para poderlo guardar en mi tabla principal Empleado esto lo quiero lograr un un ComboBox

aquí esta mi el código:


Type
TMiObjeto = class(TObject) //Creación de un objeto
ID : Integer;

procedure TfrmEmpleados.agregaalcbx;
var
obj: TMiObjeto;
begin
with dmConecta.qECivil do begin //Donde dataset es TSQLQuery que utilece
begin
Open;
First;
end;
while not eof do
begin
obj := TMiObjeto.Create;
obj.ID := dmConecta.qECivil.FieldByName('ID_ECIVIL').AsInteger; //Campo Id de la tabla
ComboBox1.Items.AddObject(FieldByName('DESCRIPCION').AsString, TMiObjeto(obj));
obj.Free;
Next;
end; //While...Not
end;// with...Do
end;




y para tener el id del mi tabla ECIVIL


procedure TfrmEmpleados.GetIDFromCB(cID: Integer);
var
obj: TMiObjeto;
begin
Obj := ComboBox1.Items.Objects[cID] as TMiObjeto;
CityID := obj.ID; //CityID es una variable Global
end;


En mi ComboBox si me aparece los registros del campo DESCRIPCION pero en el evento onChange de mi Combobox simplemente le digo:


edtIDECIVIL.Text := IntToStr(CityID);


Pero siempre me muestra el valor 1

no quiero utilizar el DBLookupComboBox1


Saludos

ecfisa
08-09-2012, 00:48:39
Hola novato_erik.

No es necesario crear una clase, probá este ejemplo:

procedure TForm1.FormCreate(Sender: TObject);
begin
// cargar el combo
qECivil.Open;
while not qECivil.Eof do
begin
ComboBox1.AddItem(qECivil.FieldByName('DESCRIPCION').AsString,
TObject(qECivil.FieldByName('ID_ECIVIL').AsInteger));
qECivil.Next;
end;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
var
id: Integer;
begin
id := Integer(ComboBox1.Items.Objects[ComboBox1.ItemIndex]); // Obtener el ID
ShowMessage(IntToStr(id));
end;


Saludos.

novato_erick
08-09-2012, 01:43:41
ecfisa:
No es necesario crear una clase, probá este ejemplo:


^\||/ Genial Gracias.... practique de la dos formas creando la clase y como usted me sugirió y su guía fue la qP:-) del código muchas Gracias....


Saludos


novato_erick

Casimiro Notevi
08-09-2012, 02:20:17
[off topic]

... como usted me sugirió y su guía fue ...

Alguien va a sentirse mayor :D

[/off topic]

ecfisa
08-09-2012, 02:33:54
[off topic]
Alguien va a sentirse mayor :D
[/off topic]

La verdad que si...:( :D

Saludos. :)