Delphi GDI+ 文本输出


本文整理自网络,侵删。

 unit Unit1; 

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, CheckLst;

type

TForm1 = class(TForm)

CheckListBox1: TCheckListBox;

procedure FormPaint(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure CheckListBox1Click(Sender: TObject);

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

var fs: Integer;

procedure TForm1.CheckListBox1Click(Sender: TObject);

const

fsArr: array[0..5] of Integer = (FontStyleRegular,

FontStyleBold,

FontStyleItalic,

FontStyleBoldItalic,

FontStyleUnderline,

FontStyleStrikeout);

var

i: Integer;

begin

fs := 0;

for i := 0 to CheckListBox1.Items.Count - 1 do

if CheckListBox1.Checked[i] then

fs := fs or fsArr[i];

Repaint;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

CheckListBox1.Align := alLeft;

CheckListBox1.Items.CommaText := 'FontStyleRegular,' +

'FontStyleBold,' +

'FontStyleItalic,' +

'FontStyleBoldItalic,' +

'FontStyleUnderline,' +

'FontStyleStrikeout';

CheckListBox1.Checked[0] := True;

end;

procedure TForm1.FormPaint(Sender: TObject);

var

g: TGPGraphics;

sb: TGPSolidBrush;

font: TGPFont;

begin

g := TGPGraphics.Create(Canvas.Handle);

sb := TGPSolidBrush.Create(aclRed);

font := TGPFont.Create('微软雅黑', 50, fs);

g.DrawString('Delphi', -1, font, MakePoint(CheckListBox1.Width + 0.0, 0), sb);

font.Free;

sb.Free;

g.Free;

end;

end.

FontStyle = Integer;

const

FontStyleRegular = Integer(0); {普通文本}

FontStyleBold = Integer(1); {加粗文本}

FontStyleItalic = Integer(2); {倾斜文本}

FontStyleBoldItalic = Integer(3); {加粗并倾斜文本}

FontStyleUnderline = Integer(4); {带下划线的文本}

FontStyleStrikeout = Integer(8); {中间有直线通过的文本}

Type

TFontStyle = FontStyle;

文本样式类型表:

Delphi微软说明
FontStyleBoldBold加粗文本。
FontStyleItalicItalic倾斜文本。
FontStyleRegularRegular普通文本。
FontStyleStrikeoutStrikeout中间有直线通过的文本。
FontStyleUnderlineUnderline带下划线的文本。


坐标单位类型表:

Delphi微软说明
UnitDisplayDisplay指定显示设备的度量单位。通常,视频显示使用的单位是像素;打印机使用的单位是 1/100 英寸。
UnitDocumentDocument将文档单位(1/300 英寸)指定为度量单位。
UnitInchInch将英寸指定为度量单位。
UnitMillimeterMillimeter将毫米指定为度量单位。
UnitPixelPixel将设备像素指定为度量单位。
UnitPointPoint将打印机点(1/72 英寸)指定为度量单位。
UnitWorldWorld将世界坐标系单位指定为度量单位。


文本呈现质量模式:

Delphi微软说明
TextRenderingHintAntiAliasAntiAlias在无提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到改善。由于关闭了提示,主干宽度差可能会比较明显。
TextRenderingHintAntiAliasGridFitAntiAliasGridFit在有提示的情况下使用每个字符的消除锯齿效果标志符号位图来绘制字符。由于采用了 AntiAlias,质量会得到大大改善,但同时会增加性能成本。
TextRenderingHintClearTypeGridFitClearTypeGridFit在有提示的情况下使用每个字符的标志符号 ClearType 位图来绘制字符。这是质量最高的设置。用于利用 ClearType 字体功能。
TextRenderingHintSingleBitPerPixelSingleBitPerPixel使用每个字符的标志符号位图来绘制字符。不使用提示。
TextRenderingHintSingleBitPerPixelGridFitSingleBitPerPixelGridFit使用每个字符的标志符号位图来绘制字符。提示用于改善字符在主干和弯曲部分的外观。
TextRenderingHintSystemDefaultSystemDefault在有系统默认呈现提示的情况下使用每个字符的标志符号位图来绘制字符。将采用用户为系统选择的任何字体修匀设置来绘制文本。

//颜色透明度var  g: TGPGraphics;  sb: TGPSolidBrush;begin  g := TGPGraphics.Create(Canvas.Handle);  sb := TGPSolidBrush.Create(MakeColor(128,255,0,0)); {128表示半透明}  g.FillRectangle(sb,10,10,100,100);  sb.Free;  g.Free;end;
//使用 GDI+ 的颜色类型var g: TGPGraphics; sb: TGPSolidBrush; color: TGPColor; {其实颜色是 DWORD 类型的}begin g := TGPGraphics.Create(Canvas.Handle); color := aclRed; sb := TGPSolidBrush.Create(color); g.FillRectangle(sb,10,10,100,100); sb.Free; g.Free;end;

相关阅读 >>

Delphi 获取unigui 控件id 及获取html值

Delphi 读url下txt中的下载地址的简单下载者代码

Delphi webbrowser控件的事件

Delphi 内存中加载dll

Delphi版文件夹加密软件源代码

Delphi正则表达式匹配中文

Delphi中窗体的事件

Delphi 2009 查看所有 unicode 字符

Delphi strlenwide 汇编统计字符串长度

Delphi idhttp.post超时导致整个线程停止问题解决

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...