文字の輪郭を描画する ~Delphiソースコード集
BeginPath、EndPathとStrokePathまたはStrokeAndFillPathで文字の輪郭を描画
文字の輪郭のみを描画する場合
procedure TForm1.Button1Click(Sender: TObject);
begin
//幅と高さを設定する
Image1.Picture.Bitmap.Width:=600;
Image1.Picture.Bitmap.Height:=80;
//白色で塗り潰す
Image1.Picture.Bitmap.Canvas.Brush.Style:=bsSolid;
Image1.Picture.Bitmap.Canvas.Brush.Color:=clWhite;
Image1.Picture.Bitmap.Canvas.FillRect(Image1.Picture.Bitmap.Canvas.ClipRect);
//フォントの設定
Image1.Picture.Bitmap.Canvas.Font.Name:='MS ゴシック';
//フォントサイズを設定する(ピクセル単位)
Image1.Picture.Bitmap.Canvas.Font.Height:=-50;
//パスブラケットを開く
BeginPath(Image1.Picture.Bitmap.Canvas.Handle);
//背景モードを透明にする
Image1.Picture.Bitmap.Canvas.Brush.Style:=bsClear;
//文字列を描く
Image1.Picture.Bitmap.Canvas.TextOut(10,10,'文字の輪郭を描画');
//パスブラケットを閉じる
EndPath(Image1.Picture.Bitmap.Canvas.Handle);
//ペンの色とスタイルと幅を指定する
Image1.Picture.Bitmap.Canvas.Pen.Color:=clRed;
Image1.Picture.Bitmap.Canvas.Pen.Style:=psSolid;
Image1.Picture.Bitmap.Canvas.Pen.Width:=1;
//パスを描画する
StrokePath(Image1.Picture.Bitmap.Canvas.Handle);
end;

文字の輪郭を描画し内部を塗りつぶす場合
procedure TForm1.Button2Click(Sender: TObject);
begin
//幅と高さを設定する
Image1.Picture.Bitmap.Width:=600;
Image1.Picture.Bitmap.Height:=80;
//白色で塗り潰す
Image1.Picture.Bitmap.Canvas.Brush.Style:=bsSolid;
Image1.Picture.Bitmap.Canvas.Brush.Color:=clWhite;
Image1.Picture.Bitmap.Canvas.FillRect(Image1.Picture.Bitmap.Canvas.ClipRect);
//フォントの設定
Image1.Picture.Bitmap.Canvas.Font.Name:='MS ゴシック';
//フォントサイズを設定する(ピクセル単位)
Image1.Picture.Bitmap.Canvas.Font.Height:=-50;
//パスブラケットを開く
BeginPath(Image1.Picture.Bitmap.Canvas.Handle);
//背景モードを透明にする
Image1.Picture.Bitmap.Canvas.Brush.Style:=bsClear;
//文字列を描く
Image1.Picture.Bitmap.Canvas.TextOut(10,10,'文字の輪郭と内部を描画');
//パスブラケットを閉じる
EndPath(Image1.Picture.Bitmap.Canvas.Handle);
//ペンの色とスタイルと幅を指定する
Image1.Picture.Bitmap.Canvas.Pen.Color:=clRed;
Image1.Picture.Bitmap.Canvas.Pen.Style:=psSolid;
Image1.Picture.Bitmap.Canvas.Pen.Width:=1;
//ブラシの色とスタイルを設定する
Image1.Picture.Bitmap.Canvas.Brush.Color:=clBlue;
Image1.Picture.Bitmap.Canvas.Brush.Style:=bsDiagCross;
//パスとパスの内部を描画する
StrokeAndFillPath(Image1.Picture.Bitmap.Canvas.Handle);
end;
