PDA

Ver la Versión Completa : Tamaño columnas en TDBLookupComboBox


Luis M.
08-12-2015, 21:47:26
Hola a tod@s.
Quisiera saber si es posible cambiar el tamaño de las columnas de un TDBLookupComoboBox y
como se hace.
Estuve buscando por los foros e internet y no he sabido hallar la respuesta.
El problema que tengo es que en el ListField tengo dos campos asignados: CODIGO; FAMILIA.
El campo CODIGO es de un solo carácter y al desplegar la lista me salen los datos muy juntos
y no es muy estético. Por eso quisiera dar tamaño a las columnas.

Gracias por la ayuda.

ecfisa
08-12-2015, 22:35:55
Hola Luis.

Una opción es que crees en tu componente dataset un campo persistente (calculado de tipo string) con una longitud igual a la suma de campo CODIGO + espacio + divisor + espacio + longitud del campo FAMILIA.

Ese campo calculado (llamémosle CALCULADO :)) será quién aparezca en la propiedad ListField del TDBLookupComboBox.

Por último agregas un poco de código al evento OnCalcFields del DataSet:

procedure TForm1.FormCreate(Sender: TObject);
begin
if Assigned(tuDataModule) then
tuDataModule.tuDataSet.OnCalcFields := tuDataSetCalcFields;
// else (El DataModule debería estar creado...)
end;

procedure TForm1.tuDataSetCalcFields(DataSet: TDataSet);
begin
tuDataModule.tuDataSetCalculado.AsString := Format('%s - %s',
[tuDataModule.tuDataSetCODIGO.AsString,
Trim(tuDataModule.tuDataSetFAMILIA.AsString)]);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
tuDataModule.tuDataSet.OnCalcFields := nil;
end;


Saludos :)

Luis M.
08-12-2015, 23:43:11
Gracias ecfisa por responder.
Probaré lo que comentas a ver que tal va.
Te diré algo.
Un saludo.

Luis M.
09-12-2015, 10:35:48
Hola de nuevo y gracias.
Me distes una pista de como hacerlo.
Cree un campo calculado llamado CodigoEspacio con size := 3
En el evento OnCalcFields de la tabla Familia puse:
FamiliasCodigoEspacio.AsString := ' '+FamiliasCODIGO.AsString+' ';
y en el ListField puse el campo CodigoEspacio;FAMILIA
Y ya me muestra los datos separados.
Muchas gracias de nuevo.