用StringGrid里面的网格竟然没有对齐方式,DBGrid 就可以。瞒以为下了个大名鼎鼎的AdvStringGrid,可是还是不行,简直是没有公理,天啊!。
给我个解决办法先!

解决方案 »

  1.   

    自己写显示,在OnDrawCell事件中
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
    StringGrid1.Canvas.TextRect(rect,0,0,StringGrid1.Cells[Acol,Arow]);
    StringGrid1.Canvas.Textout(rect.Left,rect.Top,StringGrid1.Cells[Acol,Arow]);//左对齐,其他雷同
    end;
      

  2.   

    你也可以参照DBGrds单元里的WriteText函数,不能发长的留言,帖一点
        if (ACanvas.CanvasOrientation = coRightToLeft) and (not ARightToLeft) then
          ChangeBiDiModeAlignment(Alignment);
        case Alignment of
          taLeftJustify:
            Left := ARect.Left + DX;
          taRightJustify:
            Left := ARect.Right - ACanvas.TextWidth(Text) - 3;
        else { taCenter }
          Left := ARect.Left + (ARect.Right - ARect.Left) shr 1
            - (ACanvas.TextWidth(Text) shr 1);
        end;