本例效果图:
代码文件:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; RadioGroup1: TRadioGroup; RadioGroup2: TRadioGroup; Button1: TButton; LabeledEdit1: TLabeledEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} uses TypInfo; procedure TForm1.Button1Click(Sender: TObject); var w,h: Integer; pt1,pt2,pt3,pt4: TPoint; begin w := DXPaintBox1.ClientWidth; h := DXPaintBox1.ClientHeight; pt1 := Point(w div 6, h div 3); pt2 := Point(w div 6 * 5, h div 3); pt3 := Point(w div 6, h div 3 * 2); pt4 := Point(w div 6 * 5, h div 3 * 2); DXPaintBox1.DIB.SetSize(w, h, 24); DXPaintBox1.DIB.FillDIB8(0); {快速填充} DXPaintBox1.DIB.ColoredLine(pt1, pt2, TColorLineStyle(RadioGroup1.ItemIndex), clRed, clYellow, TColorLinePixelGeometry(RadioGroup2.ItemIndex), StrToIntDef(LabeledEdit1.Text, 1)); DXPaintBox1.DIB.ColoredLine(pt3, pt4, TColorLineStyle(RadioGroup1.ItemIndex), clWhite, clBlue, TColorLinePixelGeometry(RadioGroup2.ItemIndex), StrToIntDef(LabeledEdit1.Text, 1)); DXPaintBox1.Repaint; end; procedure TForm1.FormCreate(Sender: TObject); var i: Integer; begin DXPaintBox1.Align := alTop; LabeledEdit1.EditLabel.Caption := '线宽'; LabeledEdit1.Text := '10'; RadioGroup1.Caption := 'TColorLineStyle'; RadioGroup2.Caption := 'TColorLinePixelGeometry'; for i := 0 to 2 do begin {巧了, 这两个枚举都包含 3 个元素} RadioGroup1.Items.Add(GetEnumName(TypeInfo(TColorLineStyle), i)); RadioGroup2.Items.Add(GetEnumName(TypeInfo(TColorLinePixelGeometry), i)); end; RadioGroup1.ItemIndex := 1; RadioGroup2.ItemIndex := 2; RadioGroup1.OnClick := Button1Click; RadioGroup2.OnClick := Button1Click; LabeledEdit1.OnChange := Button1Click; //Button1.Click; end; end.
窗体文件:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 214 ClientWidth = 335 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False OnCreate = FormCreate PixelsPerInch = 96 TextHeight = 13 object DXPaintBox1: TDXPaintBox Left = 0 Top = 0 Width = 121 Height = 129 AutoStretch = False Center = False KeepAspect = False Stretch = False ViewWidth = 0 ViewHeight = 0 end object RadioGroup1: TRadioGroup Left = 8 Top = 135 Width = 97 Height = 71 Caption = 'RadioGroup1' TabOrder = 0 end object RadioGroup2: TRadioGroup Left = 111 Top = 135 Width = 138 Height = 71 Caption = 'RadioGroup2' TabOrder = 1 end object Button1: TButton Left = 255 Top = 181 Width = 75 Height = 25 Caption = 'Button1' TabOrder = 2 OnClick = Button1Click end object LabeledEdit1: TLabeledEdit Left = 263 Top = 154 Width = 43 Height = 21 EditLabel.Width = 61 EditLabel.Height = 13 EditLabel.Caption = 'LabeledEdit1' TabOrder = 3 end end