[Lazarus-es] Combobox

Julio C. Taborda julio_taborda en yahoo.com.ar
Mie Dic 8 18:31:37 CET 2010


Hola Lissy,

Hace un tiempo que no programo y no tengo lazarus en esta pc para
probar.

A simple vista me parece que el código para cargar valores al combo está
bien, lo que me parece que está mal es donde se ejecuta. (en este caso
en el combobox1change).

Yo usaba un código similar pero ejecutándolo desde el evento show del
formulario para cargar datos iniciales en el combo. Otra opción que
usaba era cambiar los datos del combo cuando se seleccionaba un item en
otro combo.

Por ejemplo:
Cargar datos iniciales del combo en el formshow:

 procedure TForm2.FormShow(Sender: TObject);
 begin
    Combobox1.Clear;
    zquery1.SQL.Text:= 'SELECT * FROM empresas';
    zquery1.Open;
    zQuery1.First;   //<<-- para probar; no recuerdo si es necesario.
    while not zquery1.EOF  do begin
     Combobox1.Items.Add(ZQuery1.FieldByName('nombre').AsString);
     zQuery1.Next;
    end;
    zQuery1.Close;
 end;
 
Otro ejemplo puede ser:

 procedure TForm2.ComboBoxNuevo1Change(Sender: TObject);
 begin
    Combobox1.Clear;
// cambiar el select para filtrar datos de acuerdo a lo seleccionado en
// otro combobox.
    zquery1.SQL.Text:= 'SELECT * FROM empresas where ...';<<-- Modificar
    zquery1.Open;
//    zquery1.First;  <<-- Probar si hace falta.
    while not zquery1.EOF  do
    begin
     Combobox1.Items.Add(ZQuery1.FieldByName('nombre').AsString);
     zQuery1.Next;
    end;
    zQuery1.Close;
 end;
 

Espero que te ayude un poco y no te haya confundido más.

Saludos

Julio.




More information about the Lazarus-es mailing list