Y supongo que quieres hacerlo "automáticamente", es decir, a priori, no sabes los campos que se han de mostrar en el combo; o bien el usuario puede elegirlos.
El resultado que quieres es este:
Código Delphi
[-]
combo.items.add('ClienteID');
combo.items.add('Nombre');
combo.items.add('Status');
Pero sin tenerlos que añadir a mano.
Lo que puedes hacer es guardar en alguna tabla, los nombres de los campos que quieres visualizar, y despues cargarlos en tiempo de ejecución.
Te puedes crear una tabla con 2 campos de string, el primero de 50 de ancho y el segundo de 255. de tal forma que quede así:
Código:
tabla frases:
codigo Descripcion
--------------------- -----------------------------------
VerCampos Nombre;ClienteId;Estatus
PreferenciasGuardarIni True
Ahora solo tienes que "crearte" unas rutinas para leer lo que necesites, Recuerda que todo está guardado como Strings.
Código Delphi
[-]
if tablafrases.locate('codigo','VerCampos',[]) then
begin
x := Tstringlist.create;
try
x.Delimitedchar := ';';
x.DelimitedText := tablafrasesDescripcion.asstring;
for i:=0 to x.count-1
if qry.FindField(x[i]) <>nil then
comboFiltro.items.add(x[i])
else
Messagebox('El campo '+ x[i] + ' no existe en la query');
finally
x.free;
end;
end;
Espero haber acertado en la respuesta.
