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

本例效果图:

代码文件:

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.

时间: 2024-10-30 23:00:17

Delphi与DirectX之DelphiX(81): TDIB.ColoredLine();的相关文章

Delphi与DirectX之DelphiX(87): TDIB.DrawTransparent、DrawTranslucent、Dra

Delphi与DirectX之DelphiX(87): TDIB.DrawTransparent.DrawTranslucent.DrawAlpha(); TDIB.DrawTransparent: 按指定的透明色透明; TDIB.DrawTranslucent: 先按指定的透明色透明, 然后再半透明; DIB.DrawAlpha: 先按指定的透明色透明, 再按指定的透明度透明. 本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages,

Delphi与DirectX之DelphiX(88): TDIB.DrawQuickAlpha();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Butt

Delphi与DirectX之DelphiX(95): TDIB.x

//让 TDIB 的这些特效烦透了: 多.还重复.又不完善; 还没有测试或测 试失败的方法: procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; FilterMode: TFilterMode); procedure DrawShadows(SrcDIB: TDIB; X, Y, Width, Height, Frame: Integer; Alpha: Byte); procedure DrawAnti

Delphi与DirectX之DelphiX(94): TDIB.DrawAdditive();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Butt

Delphi与DirectX之DelphiX(93): TDIB.DrawDarken();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Colo

Delphi与DirectX之DelphiX(92): TDIB.Draw3x3Matrix();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; Butt

Delphi与DirectX之DelphiX(91): TDIB.DrawMono();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; procedure Button1Click(Sender: TObject);

Delphi与DirectX之DelphiX(90): TDIB.DrawMorphed();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; Button3: TButton; proc

Delphi与DirectX之DelphiX(89): TDIB.DrawAlphaMask();

本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DIB, StdCtrls, ExtCtrls; type TForm1 = class(TForm) DXPaintBox1: TDXPaintBox; Button1: TButton; Button2: TButton; ColorBox1: T