上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 215 下一页
摘要: {整数求和函数,使用指定类型的开放数组}function Fun1(arr: array of Integer): Integer;var n: Integer;begin Result := 0; for n in arr do Inc(Result, n);end;{整数、浮点数或布尔值的求和函数,使用无类型的开放数组}function Fun2(arr: array of const): Double;var i: Integer;begin Result := 0; for i := Low(arr) to High(arr) do begin case arr[i].VType of 阅读全文
posted @ 2011-04-14 10:50 万一 阅读(2379) 评论(0) 推荐(0) 编辑
摘要: function SetDrawingEffect( const drawingEffect: IUnknown; //颜色接口; 该接口需自己定义和实现, 只要能存取颜色即可 textRange: TDwriteTextRange //要设置的范围): HResult; stdcall;测试代码:unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Direct2D, D2D1;const SID_IColorDrawingEff 阅读全文
posted @ 2011-04-14 09:31 万一 阅读(2414) 评论(0) 推荐(0) 编辑
摘要: 使用 IDWriteTextLayout.Draw() 方法绘制文本主要是实现 IDWriteTextRenderer 接口。IDWriteTextRenderer 接口只能是手动实现,很灵活。unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Direct2D, D2D1;type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); procedure Form 阅读全文
posted @ 2011-04-13 15:59 万一 阅读(3260) 评论(1) 推荐(0) 编辑
摘要: 使用 RenderTarget.DrawTextLayout() 方法主要是设置 IDWriteTextLayout 接口;构建 IDWriteTextLayout 接口需要 IDWriteTextFormat 接口。IDWriteTextLayout 接口是经过完全分析和格式化后的文本块。{RenderTarget.DrawTextLayout() 方法}procedure DrawTextLayout( origin: D2D1_POINT_2F; //起点 const textLayout: IDWriteTextLayout; //分析和格式化后的文本块 const defaultFo 阅读全文
posted @ 2011-04-13 12:39 万一 阅读(3090) 评论(0) 推荐(1) 编辑
摘要: uses Direct2D, D2D1;{建立位图画刷的函数}function GetBitmapBrush(Canvas: TDirect2DCanvas; filePath: string): ID2D1BitmapBrush;var rBBP: TD2D1BitmapBrushProperties; bit: TBitmap;begin bit := TBitmap.Create; bit.LoadFromFile(filePath); rBBP.extendModeX := D2D1_EXTEND_MODE_WRAP; rBBP.extendModeY := D2D1_EXTEND_M 阅读全文
posted @ 2011-04-13 11:32 万一 阅读(2345) 评论(0) 推荐(0) 编辑
摘要: TDirect2DCanvas 提供了两种输出文本的方法:TextOut()、TextRect(),因太过高级,基本没有实用价值。TDirect2DCanvas.RenderTarget 有三种输出文本的方法:DrawText()、DrawTextLayout()、DrawGlyphRun()。DrawText() 对文本格式的控制能力类似 TMemo;DrawTextLayout() 对文本格式的控制能力类似 TRichEdit;DrawGlyphRun() 可以完成更复杂的字形输出。另外 DirectWrite 还有其它文本输出方法,如回调 IDWriteTextRenderer 接口。T 阅读全文
posted @ 2011-04-12 21:42 万一 阅读(3958) 评论(1) 推荐(0) 编辑
摘要: uses Direct2D, D2D1;procedure TForm1.Button1Click(Sender: TObject);var iFontCollection: IDWriteFontCollection; //字体集合 iFontFamily: IDWriteFontFamily; //字族 iLocalizedStrings: IDWriteLocalizedStrings; //按区域设置名称编制索引的字符串集合 i,j: Integer; buf: array[0..LF_FACESIZE] of Char;begin ListBox1.Clear; DWriteFact 阅读全文
posted @ 2011-04-11 19:09 万一 阅读(2205) 评论(4) 推荐(0) 编辑
摘要: {Direct2D 相关技术模块}Direct2D //相关信息:d2d1.dll; D2D1.pas、Direct2D.pasDirectWrite //相关信息:dwrite.dll; D2D1.pasWICBitmap //相关信息:windowscodecs.dll; Wincodec.pas、Graphics.pas(TWICBitmap){Direct2D 相关接口}ID2D1Bitmap //表示已绑定到 ID2D1RenderTarget 的位图。ID2D1BitmapBrush //用位图绘制区域。ID2D1BitmapRenderTarget //呈现到由 CreateCo 阅读全文
posted @ 2011-04-11 10:46 万一 阅读(3275) 评论(0) 推荐(0) 编辑
摘要: ID2D1BitmapRenderTarget 是内存绘图的解决方案。它从 ID2D1RenderTarget 继承,只多出一个 GetBitmap() 方法。{相关方法}TDirect2DCanvas.RenderTarget.CreateCompatibleRenderTarget(); //建立 ID2D1BitmapRenderTargetID2D1BitmapRenderTarget.GetBitmap(); //从 ID2D1BitmapRenderTarget 获取 ID2D1Bitmap测试代码:uses Direct2D, D2D1;{通过 ID2D1BitmapRender 阅读全文
posted @ 2011-04-08 15:52 万一 阅读(4077) 评论(44) 推荐(0) 编辑
摘要: {相关接口}ID2D1TessellationSink //用于接收 ID2D1Geometry.Tessellate() 方法输出的三角形数组ID2D1Mesh //是使用 ID2D1TessellationSink 填充的网格,它负责 Open ID2D1TessellationSink{相关方法}TDirect2DCanvas.RenderTarget.CreateMesh() //建立 ID2D1MeshTDirect2DCanvas.RenderTarget.FillMesh() //填充 ID2D1Mesh,只能在 D2D1_ANTIALIAS_MODE_ALIASED 模式下使用 阅读全文
posted @ 2011-04-08 13:25 万一 阅读(2307) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 215 下一页