[Lazarus-es] Load combobox
Jesus Reyes
jesusrmx en yahoo.com.mx
Mar Jun 16 05:25:15 CEST 2009
>
> SetLength(aItems, DataModule1.lstempresa.RecordCount);
>
> nCont:=1;
> while Not DataModule1.lstempresa.EOF Do
> begin
>cboempresa.Items.Add(DataModule1.lstempresa.FieldByName('emp_razsoc').AsString);
>
> aItems[nCont]:=DataModule1.lstempresa.FieldByName('emp_id').AsString;
Suponiendo que emp_id es de tipo entero quizas puedas hacer algo como esto:
cboEmpresa.Items.AddObject(
DataModule1.lstempresa.FieldByName('emp_razsoc').AsString,
TObject(PtrInt(DataModule1.lstempresa.FieldByName('emp_id').AsInteger))
);
De tal manera que cuando uses OnChange u OnSelect del combo y necesites el valor del emp_id, puedes recuperarlo con:
Id := PtrInt(cboEmpresa.Items.Objects[cboEmpresa.ItemIndex]));
De esta forma y al costo del feo casting te ahorras algo de codigo y te evitas el manejo del array que como has comprobado puede llegar a causar confusion al tener que manter paralelamente sincronia entre los elementos.
Saludos.
Jesus Reyes A.
¡Obtén la mejor experiencia en la web! Descarga gratis el nuevo Internet Explorer 8. http://downloads.yahoo.com/ieak8/?l=mx
More information about the Lazarus-es
mailing list