Правое выравнивание ячеек TStringGrid



Я полагаю, это лучший метод:


procedure TForm1.GridSumaDrawCell(Sender: TObject; ACol, ARow: Longint;
ARect: TRect; State: TGridDrawState);
var
dx: integer;
begin
with (Sender as TStringGrid).Canvas do
begin
Font := GridSuma.Font;
Pen.Color := clBlack;
if (ACol = 0) or (ARow = 0) then
begin
{ Рисуем заголовок }
Brush.Color := clBtnFace;
FillRect(ARect);
TextOut(ARect.Left, ARect.Top, GridSuma.Cells[ACol, ARow])
end
else
begin
{ Рисуем ячейку с правым выравниванием }
Brush.Color := clWhite;
FillRect(ARect);
dx := TextWidth(GridSuma.Cells[ACol, ARow]) + 2;
TextOut(ARect.Right - dx, ARect.Top, GridSuma.Cells[ACol, ARow])
end
end
end;


Далее: Пример TDrawGrid Drawcell »»