Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   alinear columnas en un memo (https://www.clubdelphi.com/foros/showthread.php?t=85503)

ingabraham 26-03-2014 16:15:40

alinear columnas en un memo
 
-Buenos dias,


necesito alinear columnas en un memo.

utilizo:

Código Delphi [-]
    memo1.lines.add( Format(' %s            %s       ',[var1, var2])  );

la variable 1 me desalinea la columna de la dos.


quien me da una didea

Casimiro Notevi 26-03-2014 16:16:43

Usa courier new ;)

ingabraham 26-03-2014 16:59:41

Cita:

Empezado por Casimiro Notevi (Mensaje 474352)
Usa courier new ;)


hola gracias,

uy pero se ve muy pequeña la letra y tengo mucho campos,

yo utilizaba el Tahoma es una letra muy visible

no hay otra forma ?

roman 26-03-2014 17:16:38

Pues entonces usa Courier New a 12 punto o más. La cuestión es que Courier New es una fuente donde todas las letras tienen el mismo ancho y por ello puedes usarla para alinear.

// Saludos

Casimiro Notevi 26-03-2014 17:17:46

Si quieres que queden "alineadas", tendrás que usar un tipo de letra de ancho fijo: courier New, ocr, lucida console... las llamadas "monoespaciadas" o "fixed width"

EDITO: lo que ha dicho Román.

duilioisola 26-03-2014 18:31:06

Ten en cuenta que también puedes establecer el tamaño y alineación de cada "columna".

Código Delphi [-]
// Esto mostrará 2 columnas de 15 caracteres, sin importar la longitud de la variable
// __________12345 __________abcde
// _________123456 _________abcdef
// ...
memo1.lines.add( Format('%15s %15s',[var1, var2]) );

Código Delphi [-]
// Esto mostrará 2 columnas de 15 caracteres alineados a izquierda, sin importar la longitud de la variable
// 12345__________ abcde__________
// 123456_________ abcdef_________
// ...
memo1.lines.add( Format('%-15s %-15s',[var1, var2]) );

ingabraham 26-03-2014 18:55:15

Cita:

Empezado por duilioisola (Mensaje 474364)
Ten en cuenta que también puedes establecer el tamaño y alineación de cada "columna".

Código Delphi [-]
// Esto mostrará 2 columnas de 15 caracteres, sin importar la longitud de la variable
// __________12345 __________abcde
// _________123456 _________abcdef
// ...
memo1.lines.add( Format('%15s %15s',[var1, var2]) );

Código Delphi [-]
// Esto mostrará 2 columnas de 15 caracteres alineados a izquierda, sin importar la longitud de la variable
// 12345__________ abcde__________
// 123456_________ abcdef_________
// ...
memo1.lines.add( Format('%-15s %-15s',[var1, var2]) );


gracias,


lo he estado intentando asi pero se me descuadra.

no se si calculando el tamanio de cada cadena y adicionandole espacio en blanco, extra a esa cadena

Casimiro Notevi 26-03-2014 19:12:58

Cita:

Empezado por ingabraham (Mensaje 474366)
lo he estado intentando asi pero se me descuadra.
no se si calculando el tamanio de cada cadena y adicionandole espacio en blanco, extra a esa cadena

Siempre descuadrará si no usas letras de ancho fijo.

roman 26-03-2014 20:23:02

Cita:

Empezado por Casimiro Notevi (Mensaje 474368)
Siempre descuadrará si no usas letras de ancho fijo.

Creo que no necesariamente.

Si usamos lo que propone duilioisola pero dejando un tabulador en lugar de un espacio entre las columnas:

Código Delphi [-]
memo1.lines.add( Format('%-15s'#9'%-15s',[var1, var2]) );

puede funcionar aunque para ello los datos de un columna no deben exceder el ancho del campo establecido (15 en el ejemplo de duilioisola).

// Saludos

ingabraham 26-03-2014 20:27:05

Cita:

Empezado por roman (Mensaje 474376)
Creo que no necesariamente.

Si usamos lo que propone duilioisola pero dejando un tabulador en lugar de un espacio entre las columnas:

Código Delphi [-]
memo1.lines.add( Format('%-15s'#9'%-15s',[var1, var2]) );

puede funcionar aunque para ello los datos de un columna no deben exceder el ancho del campo establecido (15 en el ejemplo de duilioisola).

// Saludos

ok, felicidades distes en el blanco

jeje


La franja horaria es GMT +2. Ahora son las 13:22:32.

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