更改StringGrid 那个属性,可以 使 列值 居中 or 靠左, ( 积分: 50 )

  • 主题发起人 主题发起人 oneoneone
  • 开始时间 开始时间
O

oneoneone

Unregistered / Unconfirmed
GUEST, unregistred user!
更改StringGrid 那个属性,可以 使 列值 居中 or 靠左,
 
更改StringGrid 那个属性,可以 使 列值 居中 or 靠左,
 
procedure TFormSetParameter.GridDrawCell(Sender: TObject
ACol,
ARow: Integer
Rect: TRect
State: TGridDrawState);
begin
{文字居中}
with Sender as TStringGrid do
begin
Canvas.FillRect(Rect);
DrawText(Canvas.Handle, PChar(Cells[ACol, ARow]), Length(Cells[ACol, ARow]), Rect, DT_CENTER or DT_SINGLELINE or DT_VCENTER);
end;
{文字居中结束}

end;
只能用方法来实现!左右,你可以查查DT_Center几个相关的东西,就可以了
 
procedure TfrmEnWordsView.stringGridDrawCell(Sender: TObject
ACol,
ARow: Integer
Rect: TRect
State: TGridDrawState);
//确保能够居中画出各个字
procedure CenterTextOut;
var l,t:Integer;
begin
t :=(Rect.Bottom-Rect.Top)
-stringGrid.Canvas.TextHeight(stringGrid.Cells[ACol,ARow]);
t :=t div 2;
t :=t +Rect.Top;

l :=(Rect.Right-Rect.Left)
-stringGrid.Canvas.TextWidth(stringGrid.Cells[ACol,ARow]);
l :=l div 2;
if l>0 then
l :=l +Rect.Left
else
l :=2 +Rect.Left;
//以无背景方式画字
stringGrid.Canvas.Brush.Style :=bsClear;
stringGrid.Canvas.TextOut( l,
t,
stringGrid.Cells[ACol,ARow]);
end;
begin
...
CenterTextOut;
...
end;
 
二楼,不好意思,同时粘到这儿了
 
多人接受答案了。
 
后退
顶部