Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   pasar item del combobox a un listbox (https://www.clubdelphi.com/foros/showthread.php?t=86082)

exequielmatias1 14-06-2014 23:35:01

pasar item del combobox a un listbox
 
Quiero Seleccionar un item del combobox (el cual se carga desde una tabla de una bd) y al hacer click, pase ese dato a un listbox. Luego al presionar guardar, guarde esos datos con su respectivo ID a otra tabla de la misma bd.
La carga al combobox la hago de esta forma:

Código Delphi [-]
//CARGA COMBOBOX EJECUTIVO
      Form1.qryDestinos.SQL.Text := 'Select DESTINOS From Destinos order by Destinos asc';
    Form1.qryDestinos.Active := True;
      While not Form1.qryDestinos.Eof do
        begin
      Combobox1.Items.Add(Form1.qryDestinos.Fields[0].Text);
      Form1.qryDestinos.Next;

Es decir si selecciono varios ítems del combobox se van a ir mostrando en el listbox. Luego presiono el boton guardar, cada ítems del listbox se guardara en un registro de una tabla diferente con el id de la tabla original

ecfisa 15-06-2014 08:21:20

Hola exequielmatias.
Cita:

Empezado por exequielmatias1 (Mensaje 477836)
Quiero Seleccionar un item del combobox (el cual se carga desde una tabla de una bd) y al hacer click, pase ese dato a un listbox. Luego al presionar guardar, guarde esos datos con su respectivo ID a otra tabla de la misma bd.
...

Si deseas pasar el item visible mas su respectivo ID desde el ListBox a otra tabla, la carga no puede ser de ese modo ya que no tenes manera de obtener el ID desde el ComboBox...

Según lo que entendí de tu consulta, sería:
Código Delphi [-]
...
// Cargar el combo con los campos DESTINO e ID
procedure TForm1.btnCargarCombo(Sender: TObject);
begin
  ComboBox1.Items.Clear;
  with qryDestinos do
  begin
    Close
    Text := 'Select ID, DESTINOS From Destinos order by Destinos asc'
    Open;
    while not Eof do
    begin
      ComboBox1.AddItem(FieldByName('DESTINOS').AsString,
        TObject(FieldByName('ID').AsInteger));
      Next;
    end;
  end;
end;

// Pasar items del combo al listbox
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
  with ComboBox1 do
    if ItemIndex <> -1 then
      ListBox1.AddItem(Items[ItemIndex], Items.Objects[ItemIndex]);
end;

// Guardar en la otra tabla los items del listbox
procedure TForm1.btnSaveClick(Sender: TObject);
var
  i: Integer;
begin
  with qryDestinos do
  begin
    Close;
    SQL.Text:= 'INSERT INTO TU_OTRA_TABLA(ID, DESTINOS) VALUES(:PID, :DES)';
    Prepare;
    for i:= 0 to ListBox1.Items.Count-1 do
    begin
      ParamByName('PID').AsInteger:= Integer(ListBox1.Items.Objects[i]);
      ParamByName('DES').AsString:= ListBox1.Items[i];
      ExecSQL;
    end;
  end;
end;
Lógicamente en la última sentencia SQL tendrás que cambiar "TU_OTRA_TABLA" y los nombres de campos de dicha tabla por los que hayas definido. No tengo Delphi en este momento pero creo que el código debería funcionar.

Saludos :)


La franja horaria es GMT +2. Ahora son las 07:08:21.

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