Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Obtener el valor mi tabla con un combobox (https://www.clubdelphi.com/foros/showthread.php?t=80188)

novato_erick 07-09-2012 23:54:34

Obtener el valor mi tabla con un combobox
 
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:

Código Delphi [-]
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

Código Delphi [-]
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:

Código Delphi [-]
 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:
Código Delphi [-]
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

Cita:

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 Noteví 08-09-2012 02:20:17

[off topic]

Cita:

Empezado por novato_erick (Mensaje 442425)
... como usted me sugirió y su guía fue ...

Alguien va a sentirse mayor :D

[/off topic]

ecfisa 08-09-2012 02:33:54

Cita:

Empezado por Casimiro Notevi (Mensaje 442428)
[off topic]
Alguien va a sentirse mayor :D
[/off topic]

La verdad que si...:( :D

Saludos. :)


La franja horaria es GMT +2. Ahora son las 23:48:59.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi