//输出文本
var
g: TGPGraphics;
sb: TGPSolidBrush;
fontFamily: TGPFontFamily;
font: TGPFont;
begin
g := TGPGraphics.Create(Canvas.Handle);
sb := TGPSolidBrush.Create(MakeColor(0,0,255));
fontFamily := TGPFontFamily.Create('宋体');
font := TGPFont.Create(fontFamily, 48, FontStyleRegular, UnitPixel);
{参数 3 参考: 文本样式类型表; 参数 4 参考: 坐标单位类型表}
g.DrawString('Hello World!', -1, font, MakePoint(10.0,10.0), sb);
{参数 2 是输出文本的长度, -1 表示全部输出;
参数 4 中的坐标不能用整数, 因为函数指定类型是: TGPRectF}
sb.Free;
fontFamily.Free;
font.Free;
g.Free;
end;
//简单输出文本
var
g: TGPGraphics;
sb: TGPSolidBrush;
font: TGPFont;
begin
g := TGPGraphics.Create(Canvas.Handle);
sb := TGPSolidBrush.Create(MakeColor(255,0,0));
font := TGPFont.Create('宋体',32.0);
g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb);
sb.Free;
font.Free;
g.Free;
end;
//使用窗体字体属性输出文本
var
g: TGPGraphics;
sb: TGPSolidBrush;
font: TGPFont;
begin
g := TGPGraphics.Create(Canvas.Handle);
sb := TGPSolidBrush.Create(MakeColor(255,0,0));
font := TGPFont.Create(Self.Canvas.Handle); //根据窗体的字体属性建立
g.DrawString('再见, 2007!', -1, font, MakePoint(10.0,10.0), sb);
sb.Free;
font.Free;
g.Free;
end;
//文本呈现质量
var
g : TGPGraphics;
FontFamily: TGPFontFamily;
Font: TGPFont;
sb: TGPSolidBrush;
begin
g := TGPGraphics.Create(Canvas.Handle);
FontFamily := TGPFontFamily.Create('Times New Roman');
Font := TGPFont.Create(FontFamily, 32, FontStyleRegular, UnitPixel);
sb := TGPSolidBrush.Create(MakeColor(255, 0, 0, 255));
g.SetTextRenderingHint(TextRenderingHintSingleBitPerPixel);
g.DrawString('SingleBitPerPixel', -1, font, MakePoint(10.0, 10.0), sb);
g.SetTextRenderingHint(TextRenderingHintAntiAlias);
g.DrawString('AntiAlias', -1, font, MakePoint(10.0, 60.0), sb);
g.Free;
FontFamily.Free;
Font.Free;
sb.Free;
end;
文本样式类型表:
Delphi |
微软 |
说明 |
---|
FontStyleBold |
Bold |
加粗文本。 |
FontStyleItalic |
Italic |
倾斜文本。 |
FontStyleRegular |
Regular |
普通文本。 |
FontStyleStrikeout |
Strikeout |
中间有直线通过的文本。 |
FontStyleUnderline |
Underline |
带下划线的文本。 |
坐标单位类型表:
Delphi |
微软 |
说明 |
---|
UnitDisplay |
Display |
指定显示设备的度量单位。通常,视频显示使用的单位是像素;打印机使用的单位是 1/100 英寸。 |
UnitDocument |
Document |
将文档单位(1/300 英寸)指定为度量单位。 |
UnitInch |
Inch |
将英寸指定为度量单位。 |
UnitMillimeter |
Millimeter |
将毫米指定为度量单位。 |
UnitPixel |
Pixel |
将设备像素指定为度量单位。 |
UnitPoint |
Point |
将打印机点(1/72 英寸)指定为度量单位。 |
UnitWorld |
World |
将世界坐标系单位指定为度量单位。 |
文本呈现质量模式:
Delphi |
微软 |
说明 |
---|
TextRenderingHintAntiAlias |
AntiAlias |
在无提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到改善。由于关闭了提示,主干宽度差可能会比较明显。 |
TextRenderingHintAntiAliasGridFit |
AntiAliasGridFit |
在有提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到大大改善,但同时会增加性能成本。 |
TextRenderingHintClearTypeGridFit |
ClearTypeGridFit |
在有提示的情况下使用每个字符的标志符号 ClearType 位图来绘制字符。这是质量最高的设置。用于利用 ClearType 字体功能。 |
TextRenderingHintSingleBitPerPixel |
SingleBitPerPixel |
使用每个字符的标志符号位图来绘制字符。不使用提示。 |
TextRenderingHintSingleBitPerPixelGridFit |
SingleBitPerPixelGridFit |
使用每个字符的标志符号位图来绘制字符。提示用于改善字符在主干和弯曲部分的外观。 |
TextRenderingHintSystemDefault |
SystemDefault |
在有系统默认呈现提示的情况下使用每个字符的标志符号位图来绘制字符。将采用用户为系统选择的任何字体修匀设置来绘制文本。 |