StringGrid的对齐方式

作者在 2008-07-14 12:36:51 发布以下内容

如何改变StringGrid的对齐方式(默认为左对齐)?

procedure Tform1.SG1DrawCell(Sender: TObject; ACol, ARow: Integer;
    Rect: TRect; State: TGridDrawState);
var
    CellStr:string;
    Mode:integer;
begin
    if Arow=0 then               //标题栏退出
      exit;
    if ACol in [0,6,7,8,9] then   //右对齐列
      Mode:=DT_RIGHT  //对齐方式(or DT_LEFT or DT_CENTER)
    else
      exit;
    CellStr:=sg1.Cells[Acol,Arow];
    sg1.Canvas.FillRect(rect);

    //重写单元格内容,没有这句话,内容将丢失
    DrawText(sg1.Canvas.Handle,Pchar(CellStr),length(CellStr),Rect,Mode);
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
with StringGrid1,StringGrid1.Canvas do
begin
 FillRect(Rect);
 DrawText(Handle, PChar(Cells[ACol, ARow]),Length(Cells[ACol, ARow]),Rect, DT_RIGHT);
 end;
end

 

 

默认分类 | 阅读 3576 次
文章评论,共0条
游客请输入验证码
浏览94514次