Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Tamaño columnas en TDBLookupComboBox (https://www.clubdelphi.com/foros/showthread.php?t=89533)

Luis M. 08-12-2015 21:47:26

Tamaño columnas en TDBLookupComboBox
 
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:
Código Delphi [-]
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:
Código Delphi [-]
FamiliasCodigoEspacio.AsString := ' '+FamiliasCODIGO.AsString+' ';
y en el ListField puse el campo CodigoEspacio;FAMILIA
Y ya me muestra los datos separados.
Muchas gracias de nuevo.


La franja horaria es GMT +2. Ahora son las 02:09:08.

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