PDA

Ver la Versión Completa : Formateo de datos númericos dentro de un StringGrid


REDCOM
22-05-2003, 01:00:31
Saludos:

Qusiera por favor me auxiliaran con el siguiente problema:

Estoy utilizando un stringGrid en una aplicación, el cual debe mostrar datos númericos, por ejemplo:

_____125.30
____1250.75
_______1.32

El problema es que cuando se tratan de formatear para que se muestren en el grid, estos aparecen asi:

____125.30
____1250.75
_____1.32

Es decir que no aparecen alineados verticalmente.

Mucho agradeceria si alguien tiene idea de como formateralos

pedrohdez
22-05-2003, 09:37:16
Hola Redcon,

eso te pasa, probablemente, por que estas rellenando con espacioa a la izquierda y un espacio no ocupa lo mismo que un numero, tienes dos soluciones, usar tipo de letra de tamaño ficjo (fixed) o 'pintar' la celda a mano, yo uso esto en un TStringGrid.OnDrawCell

tmp:= Rect.Right-MiGrid.Canvas.TextWidth(Numero.asString)-2;
MiGrid.Canvas.TextRect(Rect,tmp,Rect.Top+2,Numero.asString);


saludos,

REDCOM
23-05-2003, 06:24:05
Hola PedorHdez.

Gracias por tu colaboracion la aprecio mucho.

Tambien encontre esta forma de formatear los datos en la
stringgrid.

Dentro del DrawCell

if ACol=3 then // voy a alinear a la derecha la 3ª columna
if ARow>0 then //No quiero alinear la línea de títulos
with StringGrid1 do
begin
Canvas.FillRect(Rect);
Settextcolor(Canvas.handle,clGreen); // presentalo en verde
DrawText(Canvas.Handle,PChar(Cells[Acol,ARow]),-1,Rect,DT_RIGHT or DT_SINGLELINE); // justifica a la derecha
Settextcolor(Canvas.handle,clBlack); // restaura el normal
end;

Gracias y espero colaborar contigo posteriormente.