更新日 : 2009/3/30 このページは Delphi Graphic Secrets 及び DHGL のよくあるご質問とその回答を集めたものです。 |
DHGL は Delphi High-Level Graphic Library の略です。Delphi のグラフィック機能を補う目的で作成しました。書籍Delphi Graphic SecretsはDHGLの解説書という性格も持っています。 |
DHGLには以下のユニットが含まれています(DHGL 1.2)。
ユニット名 | クラス、ルーチン名 | 説明 |
BitBitmap.pas | TBigBitmap | 巨大なビットマップを保持でき、安定な印刷を提供するグラフィッククラスです。 |
CopyRectBigBitmap (DHGL 1.2 以降) |
TBigBitmapの任意の領域を任意のCanvas の任意の領域へコピーします。 | |
BitmapEx.pas | TBitmapEx | TBitmapの改良版です。 |
BitmapUtils.pas | AffineTransformBitmap | ビットマップをアフィン変換するルーチンです。 |
BitmapFilter | ビットマップをフィルタ処理するルーチンです。 | |
Enlarge | ビットマップを Bi-Linear 法で拡大するルーチンです。。 | |
HorzMirrorBitmap | ビットマップを水平方向に反転させるルーチンです。 | |
RotateBitmap | ビットマップを回転させるルーチンです。 90度毎に角度が指定できるものと任意角度で回転中心が指定できるものの2種類が有ります。 | |
Shrink | ビットマップを積分法で縮小するルーチンです。 | |
Stretch | ビットマップを Bi-Linear and 積分法で拡大/縮小するルーチンです。 | |
StretchBitmap | ビットマップを TransformBitmap で拡大縮小するルーチンです。 | |
TransformBitmap | ビットマップを変形するルーチンです。 | |
VertMirrorBitmap | ビットマップを垂直方向に反転させるルーチンです。 | |
DIBUtils.pas | CreatePaletteFromDIB | DIB からパレットを作成するルーチンです。 |
LoadDIBFromStream | ストリームからビットマップファイルイメージを読み、メモリ上に DIB として展開するルーチンです。 | |
SaveDIBToStream | DIB をストリームに書き込むルーチンです。 | |
DIB32_16ToDIB24 | 16/32bppのDIB を 24bpp に変換するルーチンです。 | |
Convert8BitRLETo8BitRGB | 8bpp の RLE圧縮DIBをデコードするルーチンです。 | |
Convert4BitRLETo4BitRGB | 4bpp の RLE圧縮DIBをデコードするルーチンです | |
ErrDef.pas | ErrorDefusion | ビットマップに Floyd-Steinberrgフィルタ処理を行うルーチンです。TBitmap、TBigBitmapの両方をサポートしています。 |
Gradation.pas | TGradation | グラデーションを保持/表示するグラフィッククラスです。 |
GradationControl.pas | TGradationControl | グラデーションを表示するコンポーネントです。 |
IconEx.pas | TIconEx | 改良版のTIconです。 |
MedianCut.pas
このユニットに含まれる減色ルーチンは TBitmapとTBigBitmapの両方をサポートしています。 |
TMedianCut | Median Cut 減色アルゴリズムを提供するクラスです。 |
ReduceColorsByMedianCut | Median Cut でビットマップを減色するルーチンです。 | |
ReduceColorsByMedianCutV | 分散で分割を行う Median Cut でビットマップを減色するルーチンです。 | |
ReduceColorsByMedianCutED | Median Cut と誤差拡散でビットマップを減色するルーチンです。 | |
ReduceColorsByMedianCutVED | 分散で分割を行う Median Cut と誤差拡散でビットマップを減色するルーチンです。 | |
MetafileEx.pas | TMetafileEx | 改良版のTMetafileです。 |
MetafileUtils.pas | AdjustFont | CanvasのFontの横幅を適切な値に設定するルーチンです。 |
AdjustPhysicalInch | メタファイルの物理インチを変更するルーチンです。 | |
FixMetafileFor9X (DHGL 1.1 以降) |
Windows 9X/ME でも文字列を含むメタファイルを他のメタファイルに描画できるように、メタファイルを変換します。 | |
DHGLExtTextOut (DHGL 1.1 以降) |
Windows 9X/ME でもメタファイルに対して使える、ExtTextOut API 互換ルーチンです。 | |
DHGLExtTextOutW (DHGL 1.1 以降) |
Windows 9X/ME でもメタファイルに対して使える、ExtTextOutW API 互換ルーチンです。 | |
NkMemMgr.dll | 共有メモリマネージャ | |
NkMemMgr.dpr | 共有メモリマネージャのプロジェクト | |
NkMM,pas | メモリマネージャ | |
NkShareMem.pas | 共有メモリマネージャ、インポートライブラリ |
ユニット名 | クラス、ルーチン名 | 説明 |
Octree.pas | TOctree | Octree 減色アルゴリズムを提供するクラスです。 |
ReduceColorsByOctree | Octreeでビットマップを減色するルーチンです。TBitmapとTBigBitmapの両方をサポートしています。 | |
PathUtils.pas | TPath | パス情報を保持しパスの取り扱いを簡単にするクラスです。 |
DrawArc | 弧をBezier曲線で描くルーチンです。< | |
DrawAngleArc | 弧をBezier曲線で描くルーチンです。 | |
DrawChord | 弦をBezier曲線と直線で描くルーチンです。 | |
DrawAngleChord | 弦をBezier曲線と直線で描くルーチンです | |
DrawPie | 扇形をBezier曲線と直線で描くルーチンです。 | |
DrawAnglePie | 扇形をBezier曲線と直線で描くルーチンです。 | |
DrawRectangle | 矩形を直線で描くルーチンです。 | |
DrawRoundRect | 角マル矩形をBezier曲線と直線で描くルーチンです。 | |
DrawEllipse | 楕円をBezier曲線で描くルーチンです。 | |
DrawFigure | 多角形に沿って太い破線を描くルーチンです | |
DrawPath | パス情報に沿って太い破線を描くルーチンです。 | |
PrinterUtils.pas | GetPaperInfo | プリンタの紙に関する情報を収集するルーチンです。 |
GetPaperNumbers | プリンタがサポートする全ての紙サイズの紙サイズ番号の一覧を取得するルーチンです。 | |
GetPaperNames | プリンタがサポートする全ての紙サイズの紙サイズ名の一覧を取得するルーチンです。 | |
GetPaperSizes | プリンタがサポートする全ての紙サイズの紙の大きさの一覧を取得するルーチンです。 | |
GetPrinterSettings | 現在のプリンタの設定を取得するルーチンです。 | |
SetPrinterSettings | プリンタの設定を更新するルーチンです。 | |
PrintPreview.pas | TPrintPreview | 印刷プレビュー用コンポーネントです。プレビューのためのページ情報(メタファイル)を蓄えます。 |
RegionUtils.pas | TRegion | リージョンを保持し、リージョンを簡単に扱えるようにするクラスです。 |
ROPUtils.pas | ModifyDIBForROP | DIBでROP3が可能になるようにカラーテーブルとビットマップの内容を整えるルーチンです。 |
StatErrDef.pas | StaticErrorDefusion | ビットマップを固定パレット誤差拡散法により減色します。TBitmap, TBigBitmap の両方をサポートしています。 |
TextUtils.pas | GetTextAAdjust | 文字列の最初の文字が文字セルの前にはみ出す長さを算出するルーチンです。 |
GetTextCAdjust | 文字列の最後の文字が文字セルの後ろにはみ出す長さを算出するルーチンです。 | |
GetTExtPosition | テキストの段落を行に分解するルーチンです。 |
DHGLは完全にフリーです。フリーソフトへの利用はもちろん商用利用も出来ますし、利用に際して著作権表示も不要です。ご自由にお使いください。 |
DHGLは Delphi 5, 6、7, 2009 で試験しています。C++Builder 5 でも動作確認を行っています。 Delphi 4, 2005, 2006, 2007 でもおそらく動くと思いますが、動作試験の予定はございません。 |
DHGL のインストールは簡単です。Delphi
Graphic Secretsの付属CD-ROM のCommon フォルダをHDDにコピーしたら(DHGLをダウンロードした場合はアーカイブを解凍したら)
Common フォルダを Delphiのライブラリパスに加えてください。CD-ROMからHDDにコピーした場合は各ファイル/フォルダの読み取り専用属性を解除したほうがよいでしょう。
ライブラリパスは Delphi のIDE のメニューから [ツール(T)]-[環境オプション(O)]
詳細は Delphi のマニュアルを参照してください。また上図のタブの「ライブラリパス」の横にあるボタンを押せば、使い方はすぐに判るでしょう。
IDE のメニューから[コンポーネント(C)]-[コンポーネントのインストール(I)] |
DHGL のヘルプは
DHGL.CNT と DHGL.HLP の2つのファイルからなり
Document フォルダに収録されています。
Delphi 7 以前のDelphiでは、DHGL のヘルプを Delphi の IDE のヘルプに組み込むと、Delphi の IDE の中からヘルプが引けるようになります。例えばフォーム上のコンポーネントを選択して F1 キーを押すだけで DHGL のヘルプが引けるようになります。 IDE に DHGL のヘルプを組み込むには Open Help ユーティリティを使います。 Delphi をインストールしたフォルダの直下の bin フォルダに oh.exe という実行ファイルが有ります。これが Open Help です。 Delphi のヘルプの、目次、キーワードの検索範囲、状況感知型ヘルプの検索範囲に新たなヘルプの加えることができます。以下の手順で DHGL のヘルプを IDE に組みこんでください。
注意
|
まず、サンプルプログラムを動かして見るのが早道でしょう。Document
フォルダにあるSamples.hlp
にはコンパイルの仕方と各サンプルの説明が写真入りで入っています。また多くののサンプルは、書籍Delphi
Graphic Secrets内で解説されています。
DHGL は付属のヘルプとソースコードをご覧になればある程度使えるとは思いますが、書籍Delphi Graphic Secretsに詳細な解説があります。もしお金があれば買って読んでみてください(^^; Delphi Graphic Secrets をご購入で無い方へ:
|
DHGLに含まれるサンプルプログラムの一覧です。
フォルダ名 |
内容 |
Chapter1\1-1 |
このフォルダには1-1節の List 1-1-1 で紹介したフォームにマーカを打つサンプルプログラム Marker.dprが含まれています。 |
Chapter1\1-4 | このフォルダには 1-2節の List 1-4-1 と List 1-4-2 で紹介した ブラシとペンが図形の描画に与える影響を見るためのプログラム Pen.dpr と Brush.dpr とが含まれています。 |
Chapter1\1-5 | このフォルダには1-5節で紹介したCanvasの様々な描画用メソッドの動作を確認するためのプログラム Figures.dprが含まれています。 このプログラムは図形を描画するだけではなく描画結果を目盛り付きで拡大表示し、いろいろな描画用メソッドの描画をピクセルレベルで確認できるようにになっています。 |
Chapter1\1-6 | このフォルダには1-6節の List 1-6-1 と List 1-6-2 で紹介した、 フォントが文字列の描画にどのような影響を与えるか確認するためのプログラムが含まれています。 |
Chapter1\1-7 | このフォルダには 1-7節の List 1-7-1 で紹介した、 スクリーンの論理インチと物理インチを計算して表示するプログラム PixelSize.dpr が含まれています。 |
Chapter1\1-9 | このフォルダには1-9節の List 1-9-1 で紹介した ROP2 の効果を確認するためのサンプルプログラム Penmode.dpr が含まれています。 |
Chapter1\1-10 | このフォルダには1-10節の List1-10-1 〜 List 1-10-5 で紹介したコードを全て含む、 ブラシと背景モードと背景色の関係を確認するためのプログラム background.dpr が含まれています。 このプログラムではブラシのスタイルと背景モードの関係を確認するコードに加えて、 Canvas の背景モードの問題に対処するためのコード例も含んでいます。 |
Chapter1\1-12 | このフォルダには 1-12 節の List 1-12-1 で紹介した、 回転した文字列を表示するサンプルプログラム FontRotation.dpr が含まれています。 |
Chapter1\1-13 | このフォルダには1-13節の List 1-13-1 で紹介した、Canvas の無効領域を正しく扱うように改良した、 改良版 Markerプログラム Marker2.dpr が含まれています。 |
Chapter2\2-4 | このフォルダには 2-4節で解説したパレットを使ってグラデーションを表示するプログラム Palette.dpr が含まれています。 |
Chapter2\2-7 | このフォルダには 2-7 節で紹介したしたパレットを使ったプログラム例が 3種入っています。
Gradation.dpr はパレットを使ってグラデーションを表示する単純なアプリケーションです。 BitmapView.dpr はビットマップのビュワーです。 Image コントロールを使わずに TBitmap を使ってビットマップを表示する時のパレットの取り扱い方法を含んでいます。 GradationControlDemo.dpr はパレットを使ってグラデーションを表示するコントロールのデモプログラムです。 |
Chapter3\3-1 | このフォルダには 3-1節の List 3-1-4 で紹介したメタファイルをリソースからロードして表示する LoadFromStreamDemo.dpr が含まれています。 このデモは実行ファイルにリンクされたリソースからメタファイルをストリームとして取りだし、 TMetafile の LoadFromStream メソッドを使って読み出して表示します。 |
Chapter3\3-2 | このフォルダには 3-2 節で紹介した TBitmap に関するいくつかのサンプルプログラムが含まれています。
DrawToBitmap.dpr は List 3-2-1 で紹介したTBitmap のCanvas を使ってビットマップに文字列と図形を描くサンプルプログラムです。 GradationByBitmap.dpr は List 3-2-2 で紹介したビットマップ(DDB)を使ってグラデーションを表示するサンプルプログラムです。 GradationByDIBSection.dpr は List 3-2-4 で紹介したビットマップ(DIB Section)を使ってグラデーションを表示するサンプルプログラムです。 このサンプルには、DIB Section のピクセルデータへのアクセスの仕方や DIB Section のカラーテーブルの差し替え方などが含まれています。 CreateMonochromeBitmap.dpr は List 3-2-7 で紹介した、モノクロビットマップを作成するサンプルプログラムです。 DrawToMonochromeBitmap.dpr は List 3-2-9 で紹介したモノクロビットマップに図形やカラービットマップを描くサンプルプログラムです。 DrawMonochromeBitmap.dprは List 3-2-10 で紹介したモノクロビットマップをスクリーン(フォーム)に描画するサンプルアプリケーションです。 |
Chapter3\3-3 | このフォルダには 3-3 節で説明した TMetafile に関するいくつかのサンプルプログラムが含まれています。
UseMetafile.dpr は List 3-3-1 のコードを含むメタファイルの使用例です。メタファイルがスケーラブルで図形を自由に変形できることを確認できます。 MetafileTrouble.dpr は List 3-3-5 と List 3-3-6 で紹介した AdjustFont ルーチンと AdjustPhysicalInchi ルーチンの効果を確認するデモプログラムで, Fig. 3-3-5 〜Fig.3-3-8 を表示できます。 |
Chapter3\3-4 | このフォルダには 3-4 節で説明した TIcon に関するいくつかのサンプルプログラムが含まれています。
ListIcon.dpr は本文の Fig. 3-4-1 を表示するプログラムです。 本文では触れていませんが、このプログラムはアイコンファイルに含まれるアイコンイメージを全て表示するサンプルプログラムです。 アイコンディレクトリの取り扱い方の例になっています。 IconSize.dpr は System Large Icon, System Small Icon, Shell Large Icon, Shell Small Icon の大きさを表示するサンプルプログラムです。 |
Chapter3\3-5 | このフォルダには 3-5 節で説明した TPicture のサンプルプログラムが含まれています。 AddDIBExt.pas は List 3-5-1 のコードが入ったユニットです。本文で述べられていますように、このユニットを設計時パッケージに加えると、 拡張子が .dib のビットマップファイルを設計時にImageコントロールに読み込むことができるようになります。 |
Chapter3\3-6 | このフォルダには 3-6 節で紹介した新しいグラフィッククラス TGradation と TIconEx のデモプログラムが含まれています。
GradationDemo.dpr は TGradation クラスのデモプログラムです。グラデーションデータをファイルから読んで表示したり、グラデーションデータをファイルにセーブできます。 IconExDemo.dpr は TIconEx クラスのでもプログラムです。アイコンを任意の大きさで表示できます。またアイコンをクリップボードにコピーしたり、 アイコンをクリップボードからぺーストしたりできます。 |
Chapter4\4-1 | このフォルダには 4-1 節で紹介したラスターオペレーションに関するサンプルプログラムがいくつか含まれています。
RO3.dpr は List 4-1-1 と List 4-1-2 のコードを含む、 ROP3 の効果を確認するためのサンプルプログラムです。 イメージの反転と網掛けを行うことができます。 TransparentDraw.dpr は List 4-1-3 、List 4-1-4 による透明描画のサンプルプログラムです。List 4-1-5 の ModifyDIBForROP ルーチンを使用した DIB Sectionによる透明描画もテストできるようになっています。 尚、ModifyDIBForROP ルーチンを含む ROPUtilsユニットは Commonフォルダに収録されています。 |
Chapter4\4-2 | このフォルダには 4-2節で紹介した TBitmapEx のサンプルプログラム TBitmapExDemo.dpr が含まれています。
このサンプルは TBitmapEx でビットマップファイルを読み表示するだけの単純なプログラムです。
尚、TBitmapEx グラフィッククラスを含む BitmapEx.pas ユニット、及び、TBitmapEx で使われている各種汎用ルーチンを含む BitmapUtils.pas ユニットは Common フォルダの中にあります。 |
Chapter4\4-3 | このフォルダには 4-3節で紹介した TBigBitmap のサンプルプログラム TBigBitmapDemo.dpr が含まれています。
このデモプログラムでは、TBigBitmapが大きなビットマップを読み込み可能なこと、ビットマップを大きな拡大縮小率で描画可能なことを
TBitmapの場合と対比しながら確認できます。
尚、TBigBitmapグラフィッククラスを含む BigBitmap.pas ユニット、 及び、TBigBitmapで使われている各種汎用ルーチンを含む BitmapUtils.pasユニットは Common フォルダの中にあります。 |
Chapter4\4-4 | このフォルダには 4-4節で紹介したピクセル単位の高速処理に関するサンプルプログラムがいくつか含まれています。
Rotation90.dpr は List 4-4-1 のコードを含む、TBitmap を使ってビットマップを90度回転させるサンプルプログラムです。 Pixels と Scanlineプロパティの速度差を確認することが出来ます。 Rotation90ForBigBitmapは Rotation90.dpr の TBigBitmap版です。 TransformBitmapDemo.dpr は Fig. 4-4-2 で紹介した関数のデモプログラムです。 TransformBitmap を使ってビットマップの拡大縮小、30度回転、90度回転、ミラー、渦巻き変換の動作が確認できます。 デモでは TBitmapと TBigBitmapの両方が使えるようになっていますので、巨大なビットマップを使った実験も出来ます。 尚、TransFormBitmap関数は TBitmap用とTBigBitmap用の2種類が有り、両方ともBitmapUtils.pas ユニットに含まれています。 BitmapUtils.pas は Commonフォルダの中にあります。 |
Chapter4\4-5 | このフォルダには 4-5節で紹介したビットマップの美しい拡大縮小に関するサンプルプログラム Demo.dpr が含まれています。Demo.dpr では 4-5 節で紹介した 3 個の拡大/縮小ルーチンの動作を確認できます。 サンプルは TBitmap と TBigBitmap の両方で使えるようになっていますので、巨大なビットマップでの確認も行えます。 尚 4-5節で紹介した拡大縮小ルーチン(EnLarge, Shrink, Stretch)は全て TBitmap版とTBigBitmap版が有り BitmapUtils.pas ユニットに含まれています。 BitmapUtils.pas は Common フォルダの中にあります。 |
Chapter\4-6 | このフォルダには 4-6節で紹介した画像フィルターに関するサンプルプログラム FilterDemo.dpr が含まれています。
FilterDemo.dpr では 4-6 節で紹介した BitmapFilter ルーチンの動作を確認できます。
エンボスフィルタ、シャープフィルタ、ソフトフィルタ、ラプラシアンフィルタをお楽しみいただけるようになっています。
サンプルは TBitmap とTBigBitmapの両方が使えるようになっていますので、巨大なビットマップでの確認も行えます。
尚、 4-6節で紹介したフィルタールーチン BitmapFilter は TBitmap 版と TBigBitmap 版が有り BitmapUtils.pas ユニットに含まれています。 BitmapUtils.pas は Common フォルダの中にあります。 |
Chapter4\4-7 | このフォルダには 4-7 節で紹介した減色と誤差拡散に関するサンプルプログラム ReduceColors.dprが含まれています。
ReduceColors.dpr では 4-7 節で紹介した各種の減色ルーチンを使った減色を確認できます。
Octree, Median Cut、分散を使ったMedian Cut, Median Cut + 誤差拡散、分散を使ったMedianCut + 誤差拡散、固定パレットによる誤差拡散、計6種類の減色方式を確認できます。
サンプルでは TBitmapとTBigBitmap の両方が使えるようになっていますので、巨大なビットマップでの確認も行えます。
尚、4-7節で紹介した各種の減色ルーチンは全て TBitmap 版と TBigBitmap版が有り、 MedianCut.pas、Octree.pas, ErrDef.pas, StaticErrDef.pas, ユニットに含まれています。これらは全て Common フォルダの中にあります。 本文で紹介しなかったルーチンも多数含まれていますので、詳細は本書の付録「CD-ROMの使い方」をご覧下さい。 |
Chapter5\5-1 | このフォルダには 5-1 節で紹介した「印刷の基本」に関連するサンプルプログラムが含まれています。
SimplePrint.dpr は List 5-1-1 を含む簡単な印刷の基本的なコーディングのやり方を示すサンプルアプリケーションです。 PaperInfo.dpr は List 5-1-2 を含む、プリンタの紙情報を表示するサンプルアプリケーションです。 |
Chapter5\5-2 | このフォルダには 5-2節で紹介した List 5-2-3 のコードを含む「プレビュー付きテキスト印刷プログラム」TextPrint.dpr が含まれています。
メタファイルと DrawText API
によるプレビューと印刷を確認できます。
尚、List 5-1-2 で紹介した汎用ルーチン GetPaperInfo と、List 5-2-2 で紹介した PrintPreview コンポーネントは、 Commonフォルダに PrinterUtils.pas ユニット、PrintPreview.pas ユニットとして含まれています。 |
Chapter5\5-4 | このフォルダには 5-4節で紹介した「プリンタの制御」に関連したサンプルプログラムが含まれています。
SimplePrinterSetup.dpr は List 5-4-1 を含むプリンタ制御の基本形を確認していただくためのサンプルで、紙サイズと紙の方向を変更できます。
GetPaperSizeDemo.dpr は List 5-4-3 を利用した紙サイズの一覧を表示するサンプルアプリケーションです。
このプログラムは本文にはリストが紹介されていませんが、Fig. 5-4-4 がその表示例です。
尚、List 5-4-3 の汎用ルーチンは Common フォルダの PrinterUtils.pas ユニットの中にあります。 ChangeUserDefinedPaperSize.dpr は List 5-4-6 を含む、プリンタのユーザ定義サイズを変更するサンプルプログラムです。 この中で使われている List 5-4-5 の汎用ルーチンは Commonフォルダの PrinterUtils.pas ユニットの中にあります。 ColorCopiesCollateDemo.dpr は List 5-4-7 を含む、「カラー印刷」、「部数」、「部単位の印刷」の印刷設定を行うサンプルアプリケーションです。 「部数」、「部単位の印刷」のシミュレーションのサンプルとしてもお使いいただけます。 PrintQualityDemo.dpr は List 5-4-8 を含む、プリンタの印刷品質の変更を行うサンプルアプリケーションです。 |
Chapter5\5-5 | このフォルダには 5-5節で紹介したプリンタの切り替え機能を確認するための List 5-5-1 のコードを含むサンプルプログラム ChangePrinter.dprが含まれています。 |
Chapter6\6-1 | このフォルダには 6-1 節で紹介した「リージョン」に関連するサンプルプログラムが含まれています。
SimpleClipping.dpr は List 6-1-2 で紹介した簡単なリージョンを利用したクリッピングの例を示すサンプルアプリケーションです。 DrawWithRegion.dpr List 6-1-3 で紹介したより複雑なリージョン演算を使ったクリッピングの効果を示すサンプルアプリケーションです。 tokei.dpr は List 6-1-7 で紹介したリアルタイムにアニメーションを表示するプログラムです。 透き通った時計がリアルタイムに針を動かしながら表示されます。 List 6-1-1 で紹介したリージョンを楽に扱えるクラス TRegion を含む RegionUtils.pas と List 6-1-5 で紹介した TMetafile の改良版 (Windows 95/98 のバグ回避版)TMetafileEx クラスを含む MetafileEx.pas は Common フォルダ に収められています。 |
Chapter6\6-2 | このフォルダには 6-2 節で紹介した「パス」に関連するサンプルプログラムが含まれています。
6-2 節の「パス情報」 Fig. 6-2-4 、 Fig. 6-2-5 や Fig. 6-2-6 などでパス情報の具体的な内容を示しましたが、
パス情報を解析して表示するのがサンプルプログラム PathReader.dpr です。
このプログラムはパスを作成するコードをサンプルアプリケーションに実際に書き込んでから動かします(デフォルトで簡単なコードが既に書き込んで有ります)。
どのようなコードがどんなパス情報になるのかが簡単に確かめられます。
TextEffect.dpr は List 6-2-3 と Fig. 6-2-7 で紹介したテキストをひねって表示する、パスを使ってテキストに表示効果を加えるサンプルアプリケーションです。 WideDashedLine.dpr は List 6-2-6 と Fig. 6-2-10 で紹介した太い破線を描くサンプルアプリケーションです。 Windows 95系列のWindowsでも太い破線を描けます。 尚、Windows 95 系列のWindows でもパスで円や楕円、矩形などを利用可能にするルーチン、 DrawArc 、DrawAngleArc、DrawChord、DrawAngleChord、DrawPie、DrawAnglePie、DrawRectangle、DrawRoundRect、DrawEllipse、及び、 パス情報を保持し、パスを楽に扱えるようにする TPath、Windows 95 系列の Windows でも太い破線を描くことができる DrawFigure, DrawPath は Commonフォルダの PathUtils.pas に収録されています。 |
Chapter6\6-3 | このフォルダには 6-3節で紹介した「テキストフォーマッティング」に関連するサンプルプログラムが含まれています。
TextOut.dpr は Fig. 6-3-2 で紹介した Canvas.TextWidth と実際に TextOut API で描画される文字列のとの関係を確認するためのサンプルアプリケーションです。 CorrectWidth.dpr は Fig. 6-3-5 で紹介した List 6-3-1 GetTextAAdjust, GetTextCAdjust ルーチンを使っってテキストの描画領域を正しく表示するサンプルアプリケーションです。 TextPrint2.dpr は List 6-3-3 で紹介したテキスト整形を行いつつ段落を行に分解するルーチンGetTextPositionを使ったプレビュー付きのテキスト印刷プログラムです。 尚、GetTextAAdjust, GetTextCAdjust, GetTextPosition を含む TextUtils.pas は Common フォルダに収録されています。 |