程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi與DirectX之DelphiX(81): TDIB.ColoredLine();

Delphi與DirectX之DelphiX(81): TDIB.ColoredLine();

編輯:Delphi

本例效果圖:

代碼文件:

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved