本例效果图:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm) procedure FormPaint(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormPaint(Sender: TObject); const str = 'Delphi'; var Rgn: HRGN; x,y: Integer; begin Canvas.Font.Size := 68; Canvas.Font.Style := [fsBold]; SetBkMode(Canvas.Handle, TRANSPARENT); x := (ClientWidth - Canvas.TextWidth(str)) div 2; y := (ClientHeight - Canvas.TextHeight(str)) div 3; {建立路径} BeginPath(Canvas.Handle); Canvas.TextOut(x, y, str); EndPath(Canvas.Handle); {将路径转换为区域} Rgn := PathToRegion(Canvas.Handle); {绘制} Canvas.Brush.Color := clSilver; Canvas.Brush.Style := bsDiagCross; FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle); Canvas.Brush.Color := clRed; Canvas.Brush.Style := bsSolid; FrameRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle, 1, 1); DeleteObject(Rgn); end; end.