valor a direita na stringgrid
08/04/2003
0
Olá
Gostaria de colocar o vlr a direita da celula da stringgrid.
obrigado.
frare
Gostaria de colocar o vlr a direita da celula da stringgrid.
obrigado.
frare
Anonymous
Curtir tópico
+ 0
Responder
Posts
08/04/2003
Anonymous
Faça assim:
[b:e2487fa2a0] [color=blue:e2487fa2a0]var[/color:e2487fa2a0][/b:e2487fa2a0]
d:variant;
[b:e2487fa2a0][color=blue:e2487fa2a0]begin[/color:e2487fa2a0][/b:e2487fa2a0]
Grid.Canvas.FillRect(rect);
d:=((Rect.Right-rect.Left) - grid.Canvas.TextWidth(grid.cells[acol,arow]));
[b:e2487fa2a0][color=blue:e2487fa2a0]if[/color:e2487fa2a0][/b:e2487fa2a0] arow = 0[b:e2487fa2a0] [color=blue:e2487fa2a0]then begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.font.color := clBlack;
[b:e2487fa2a0][color=blue:e2487fa2a0]end[/color:e2487fa2a0];[/b:e2487fa2a0]
[b:e2487fa2a0][color=blue:e2487fa2a0]if[/color:e2487fa2a0][/b:e2487fa2a0] acol = 0 [b:e2487fa2a0][color=blue:e2487fa2a0]then begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.TextOut(Rect.left+4,rect.top+2,grid.cells[acol,arow]);
[b:e2487fa2a0][color=blue:e2487fa2a0]end else begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.TextOut(Rect.left+d-3,rect.top+2,grid.cells[acol,arow]);
[b:e2487fa2a0][color=blue:e2487fa2a0]end[/color:e2487fa2a0];[/b:e2487fa2a0]
[b:e2487fa2a0] [color=blue:e2487fa2a0]var[/color:e2487fa2a0][/b:e2487fa2a0]
d:variant;
[b:e2487fa2a0][color=blue:e2487fa2a0]begin[/color:e2487fa2a0][/b:e2487fa2a0]
Grid.Canvas.FillRect(rect);
d:=((Rect.Right-rect.Left) - grid.Canvas.TextWidth(grid.cells[acol,arow]));
[b:e2487fa2a0][color=blue:e2487fa2a0]if[/color:e2487fa2a0][/b:e2487fa2a0] arow = 0[b:e2487fa2a0] [color=blue:e2487fa2a0]then begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.font.color := clBlack;
[b:e2487fa2a0][color=blue:e2487fa2a0]end[/color:e2487fa2a0];[/b:e2487fa2a0]
[b:e2487fa2a0][color=blue:e2487fa2a0]if[/color:e2487fa2a0][/b:e2487fa2a0] acol = 0 [b:e2487fa2a0][color=blue:e2487fa2a0]then begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.TextOut(Rect.left+4,rect.top+2,grid.cells[acol,arow]);
[b:e2487fa2a0][color=blue:e2487fa2a0]end else begin[/color:e2487fa2a0][/b:e2487fa2a0]
grid.Canvas.TextOut(Rect.left+d-3,rect.top+2,grid.cells[acol,arow]);
[b:e2487fa2a0][color=blue:e2487fa2a0]end[/color:e2487fa2a0];[/b:e2487fa2a0]
Responder
08/04/2003
Anonymous
procedure TForm1.Grid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
LarguraTexto, AlturaTexto, X, Y: integer;
Texto: string;
begin
{ Pega o texto da célula }
Texto := Grid1.Cells[ACol, ARow];
{ Calcura largura e altura (em pontos) do texto }
LarguraTexto := Grid1.Canvas.TextWidth(Texto);
AlturaTexto := Grid1.Canvas.TextHeight(Texto);
{ Calcula a posição horizontal do início do texto }
if ACol = 0 then { Esquerda }
X := Rect.Left + 2
Else if ACol = 1 then { Esquerda }
X := Rect.Left + 2
Else if ACol = 2 then { Esquerda }
X := Rect.Left + 2
else { Direita }
X := Rect.Right - LarguraTexto - 2;
{ Calcula a posição vertical do início do texto para
que seja impresso no centro (verticalmente) da célula }
Y := Rect.Top + (Rect.Bottom - Rect.Top) div 2 -
AlturaTexto div 2;
{ Pinta o texto }
Grid1.Canvas.TextRect(Rect, X, Y, Texto);
end;
Rect: TRect; State: TGridDrawState);
var
LarguraTexto, AlturaTexto, X, Y: integer;
Texto: string;
begin
{ Pega o texto da célula }
Texto := Grid1.Cells[ACol, ARow];
{ Calcura largura e altura (em pontos) do texto }
LarguraTexto := Grid1.Canvas.TextWidth(Texto);
AlturaTexto := Grid1.Canvas.TextHeight(Texto);
{ Calcula a posição horizontal do início do texto }
if ACol = 0 then { Esquerda }
X := Rect.Left + 2
Else if ACol = 1 then { Esquerda }
X := Rect.Left + 2
Else if ACol = 2 then { Esquerda }
X := Rect.Left + 2
else { Direita }
X := Rect.Right - LarguraTexto - 2;
{ Calcula a posição vertical do início do texto para
que seja impresso no centro (verticalmente) da célula }
Y := Rect.Top + (Rect.Bottom - Rect.Top) div 2 -
AlturaTexto div 2;
{ Pinta o texto }
Grid1.Canvas.TextRect(Rect, X, Y, Texto);
end;
Responder
Clique aqui para fazer login e interagir na Comunidade :)