本例效果图:
代码文件:
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