本例效果图:
代码文件:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) ComboBox1: TComboBox; procedure FormCreate(Sender: TObject); procedure FormPaint(Sender: TObject); procedure ComboBox1Change(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses GDIPOBJ, GDIPAPI, TypInfo; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin for i := 0 to 5 do ComboBox1.Items.Add(GetEnumName(TypeInfo(TDashStyle), i)); ComboBox1.ItemIndex := 0; end; procedure TForm1.FormPaint(Sender: TObject); var g: TGPGraphics; p: TGPPen; begin g := TGPGraphics.Create(Canvas.Handle); g.Clear($FFFFFFFF); p := TGPPen.Create(aclLimeGreen, 10); p.SetDashStyle(TDashStyle(ComboBox1.ItemIndex)); g.DrawLine(p, 0, 0, ClientWidth, ClientHeight); p.Free; g.Free; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin Repaint; end; end.窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 167 ClientWidth = 242 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False Position = poDesktopCenter OnCreate = FormCreate OnPaint = FormPaint PixelsPerInch = 96 TextHeight = 13 object ComboBox1: TComboBox Left = 89 Top = 8 Width = 145 Height = 21 ItemHeight = 13 TabOrder = 0 Text = 'ComboBox1' OnChange = ComboBox1Change end end画笔样式枚举的定义:
DashStyle = ( DashStyleSolid, {指定实线} DashStyleDash, {指定由划线段组成的直线} DashStyleDot, {指定由点构成的直线} DashStyleDashDot, {指定由重复的划线点图案构成的直线} DashStyleDashDotDot, {指定由重复的划线点点图案构成的直线} DashStyleCustom {指定用户定义的自定义划线段样式} ); TDashStyle = DashStyle;