TPictureCollectionItem.DrawRotate(); 的同類函數還有:TPictureCollectionItem.DrawRotateAdd();TPictureCollectionItem.DrawRotateSub();TPictureCollectionItem.DrawRotateAlpha();TPictureCollectionItem.DrawRotateAddCol();TPictureCollectionItem.DrawRotateSubCol();TPictureCollectionItem.DrawRotateAlphaCol();
本例分別進行了示範, 運行:
代碼檔案:
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DXDraws, StdCtrls;type TForm1 = class(TForm) DXDraw1: TDXDraw; DXImageList1: TDXImageList; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; Button7: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); end;var Form1: TForm1;implementation{$R *.dfm}const Angle = 32; {在這裡相當於 45° 角} clr = $777777;var PicItem: TPictureCollectionItem;procedure TForm1.FormCreate(Sender: TObject);const ImgPath1 = 'C:\Temp\DelphiX.bmp';begin DXImageList1.DXDraw := DXDraw1; PicItem := TPictureCollectionItem(DXImageList1.Items.Add); PicItem.Picture.LoadFromFile(ImgPath1); Button1.Caption := 'DrawRotateAdd'; Button2.Caption := 'DrawRotateSub'; Button3.Caption := 'DrawRotateAlpha'; Button4.Caption := 'DrawRotateAddCol'; Button5.Caption := 'DrawRotateSubCol'; Button6.Caption := 'DrawRotateAlphaCol'; Button7.Caption := '原始效果';end;procedure TForm1.Button1Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAdd(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip;end;procedure TForm1.Button2Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateSub(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip;end;procedure TForm1.Button3Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAlpha(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, 128); DXDraw1.Flip;end;procedure TForm1.Button4Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAddCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip;end;procedure TForm1.Button5Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateSubCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip;end;procedure TForm1.Button6Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotateAlphaCol(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle, clYellow); DXDraw1.Flip;end;procedure TForm1.Button7Click(Sender: TObject);begin DXDraw1.Surface.Fill(clr); PicItem.DrawRotate(DXDraw1.Surface, DXDraw1.Width div 2, DXDraw1.Height div 2, PicItem.Width, PicItem.Height, 0, 0.5, 0.5, Angle); DXDraw1.Flip;end;end.
表單檔案:
object Form1: TForm1 Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 226 ClientWidth = 356 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 DXDraw1: TDXDraw Left = 8 Top = 8 Width = 225 Height = 211 AutoInitialize = True AutoSize = True Color = clBlack Display.FixedBitCount = False Display.FixedRatio = True Display.FixedSize = True Options = [doAllowReboot, doWaitVBlank, doCenter, do3D, doDirectX7Mode, doHardware, doSelectDriver] SurfaceHeight = 211 SurfaceWidth = 225 TabOrder = 0 Traces = end object Button1: TButton Left = 239 Top = 8 Width = 112 Height = 25 Caption = 'Button1' TabOrder = 1 OnClick = Button1Click end object Button2: TButton Left = 239 Top = 39 Width = 112 Height = 25 Caption = 'Button2' TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 239 Top = 70 Width = 112 Height = 25 Caption = 'Button3' TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 239 Top = 101 Width = 112 Height = 25 Caption = 'Button4' TabOrder = 4 OnClick = Button4Click end object Button5: TButton Left = 239 Top = 132 Width = 112 Height = 25 Caption = 'Button5' TabOrder = 5 OnClick = Button5Click end object Button6: TButton Left = 239 Top = 163 Width = 112 Height = 25 Caption = 'Button6' TabOrder = 6 OnClick = Button6Click end object Button7: TButton Left = 239 Top = 194 Width = 112 Height = 25 Caption = 'Button7' TabOrder = 7 OnClick = Button7Click end object DXImageList1: TDXImageList Items.ColorTable = { 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000} Items = Left = 192 Top = 16 endend