本例效果图(实际效果是相当流畅的, gif 只能说明个动作趋势):
代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DXDraws, StdCtrls, DXClass, ComCtrls;
type
TForm1 = class(TForm)
DXDraw1: TDXDraw;
DXImageList1: TDXImageList;
DXTimer1: TDXTimer;
procedure FormCreate(Sender: TObject);
procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
var
PicItem: TPictureCollectionItem;
Angle: Cardinal;
procedure TForm1.FormCreate(Sender: TObject);
const
ImgPath1 = 'C:\Temp\DelphiX.bmp';
begin
DXDraw1.Align := alClient;
DXTimer1.Interval := 0;
DXImageList1.DXDraw := DXDraw1;
PicItem := TPictureCollectionItem(DXImageList1.Items.Add);
PicItem.Picture.LoadFromFile(ImgPath1);
end;
procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
DXDraw1.Surface.Fill(0);
PicItem.DrawRotate(DXDraw1.Surface,
DXDraw1.Width div 2, DXDraw1.Height div 2, {位置}
PicItem.Width, PicItem.Height, {大小}
0, {调色板}
0.5, 0.5, {旋转中心: 0..1}
Byte(Angle)); {旋转角度 0..255}
Inc(Angle);
DXDraw1.Flip;
end;
end.