程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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