本例效果图:
代码文件:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) RadioGroup1: TRadioGroup; procedure FormPaint(Sender: TObject); procedure FormCreate(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin RadioGroup1.Items.CommaText := 'TRANSPARENT,OPAQUE'; RadioGroup1.ItemIndex := 0; RadioGroup1.Columns := RadioGroup1.Items.Count; end; procedure TForm1.FormPaint(Sender: TObject); const str = 'Delphi 2007'; var x,y: Integer; begin Canvas.Font.Size := 36; Canvas.Font.Style := [fsBold]; x := (ClientWidth - Canvas.TextWidth(str)) div 2; y := (ClientHeight - Canvas.TextHeight(str)) div 4; Canvas.Pen.Color := clRed; Canvas.Brush.Color := clWhite; case RadioGroup1.ItemIndex of 0: SetBkMode(Canvas.Handle, TRANSPARENT); {透明模式} 1: SetBkMode(Canvas.Handle, OPAQUE); {非透明模式} end; {也可以用下面一句话代替上面的 case 语句} //SetBkMode(Canvas.Handle, RadioGroup1.ItemIndex + 1); BeginPath(Canvas.Handle); Canvas.TextOut(x, y, str); EndPath(Canvas.Handle); StrokeAndFillPath(Canvas.Handle); end; procedure TForm1.RadioGroup1Click(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 329 Top = 269 Caption = 'Form1' ClientHeight = 206 ClientWidth = 339 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesigned OnCreate = FormCreate OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13 object RadioGroup1: TRadioGroup Left = 40 Top = 149 Width = 257 Height = 41 Caption = 'RadioGroup1' TabOrder = 0 OnClick = RadioGroup1Click end end