Delphi字体设置

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:58:44
关于字体旋转,要使用textout,并达到如下效果:
就是象棋棋盘里楚河,汉界那两个字的效果,附图

给你个函数,能将字符串任意旋转角度(有些字体不能任意旋转,如 MS Sans Serif,只能旋转 90、180、270,这时你把注释掉的部分加上就行了)。
//Canvas:目标;Text:文字;X,Y:输出坐标;Angle:旋转角度(角度制)
procedure AngleTextOut(Canvas: TCanvas; Text: string; X, Y, Angle: Integer);
var
NewFnt, OldFnt: TFont;
Lfnt: TLogFont;
begin
NewFnt := TFont.Create;
NewFnt.Assign(Canvas.Font);
GetObject(NewFnt.Handle, SizeOf(Lfnt), @Lfnt);
with Lfnt do
begin
lfEscapement := 10 * Angle;
lfOrientation := 0;
//lfOutPrecision := OUT_DEFAULT_PRECIS or OUT_TT_ONLY_PRECIS;
end;
NewFnt.Handle := CreateFontIndirect(Lfnt);
OldFnt := TFont.Create;
OldFnt.Assign(Canvas.Font);
Canvas.Font.Assign(NewFnt);
NewFnt.Free;
Canvas.TextOut(X, Y, Text);
Canvas.Font.Assign(OldFnt);
OldFnt.Free;
end;
2、该函数是逆时针旋转的,如:
AngleTextOut(Self.Canvas, 'abcdefg', 100, 100, -90);
你自己看下 行不行?

不会,有兴趣,留名。