代码文件:
unit Unit1;interfaceuses 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 endend画笔样式枚举的定义:
DashStyle = ( DashStyleSolid, {指定实线} DashStyleDash, {指定由划线段组成的直线} DashStyleDot, {指定由点构成的直线} DashStyleDashDot, {指定由重复的划线点图案构成的直线} DashStyleDashDotDot, {指定由重复的划线点点图案构成的直线} DashStyleCustom {指定用户定义的自定义划线段样式});TDashStyle = DashStyle;