TDirectDrawSurface.PokeLine(); TDirectDrawSurface.PokeLinePolar(); TDirectDrawSurface.PokeBox(); TDirectDrawSurface.PokeBlendPixel(); TDirectDrawSurface.PokeCircle(); TDirectDrawSurface.PokeEllipse(); TDirectDrawSurface.PokeFilledEllipse(); TDirectDrawSurface.PokeWuLine(); TDirectDrawSurface.PokeVLine(); TDirectDrawSurface.DoRotate();
这些绘图命令都需要在 TDirectDrawSurface.Lock 和 TDirectDrawSurface.UnLock 之间进行, 并不是特别好用.
另外还有两个读写属性: Pixel 和 Pixels, 绘制时前者须在 Lock、UnLock 之间, 后者又不能锁定, 真是不完善.
本例只是个画线的例子, 运行效果图:

代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXClass, DXDraws;
type
TForm1 = class(TForm)
DXDraw1: TDXDraw;
DXTimer1: TDXTimer;
procedure FormCreate(Sender: TObject);
procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
DXDraw1.Align := alClient;
DXTimer1.Interval := 50;
end;
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
var
x1,y1,x2,y2: Integer;
clr: TColor;
begin
x1 := Random(DXDraw1.Surface.Width);
y1 := Random(DXDraw1.Surface.Height);
x2 := Random(DXDraw1.Surface.Width);
y2 := Random(DXDraw1.Surface.Height);
clr := Random($FFFFFF);
// DXDraw1.Surface.Fill(0);
DXDraw1.Surface.Lock;
DXDraw1.Surface.PokeLine(x1, y1, x2, y2, clr);
DXDraw1.Surface.UnLock;
DXDraw1.Flip;
end;
end.
浙公网安备 33010602011771号