程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi 與 DirectX 之 DelphiX(5): 初識 TDXImageList

Delphi 與 DirectX 之 DelphiX(5): 初識 TDXImageList

編輯:Delphi

新建工程後, 在窗體上分別添加: DXDraw1、DXImageList1;

  然後只需要下面四行代碼即可在 DXDraw1 中顯示 DelphiX.dxg 圖像:

procedure TForm1.Button1Click(Sender: TObject);
begin
 DXImageList1.Items.LoadFromFile('C:TempDelphiX.dxg');
 DXImageList1.DXDraw := DXDraw1;
 DXImageList1.Items[0].Draw(DXDraw1.Surface, 10, 10, 0);
 DXDraw1.Flip;
end;

  你如果沒有 dxg 格式的圖像, 就下載本例用到的圖像吧(下載後解壓到 C:Temp):

  http://files.cnblogs.com/del/DelphiX_img.rar

  DXImageList1 是一個圖像列表, 本來用 LoadFromFile 添加很方便, 但現在這個命令很不好用;

  不過沒關系, 還有其他辦法建立圖像列表:

  1、設計時雙擊 DXImageList1 圖標...這種方法也不好, 目前只支持 dxg 和部分 bmp(dib我沒試);

  2、從 DXImageList1 雙擊其 items 屬性...這種方法好, 支持很多種格式;

  3、TDXImageList 總歸還是 VCL 控件嗎, 它可以和其他 VCL 交互; 只要其他控件能加載的圖片它都可以拿來用.

  下面的例子是用第二種辦法添加了兩個圖片, 運行效果圖:

  代碼文件:

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, DXDraws, DXClass;
type
 TForm1 = class(TForm)
  DXDraw1: TDXDraw;
  DXImageList1: TDXImageList;
  Button1: TButton;
  Button2: TButton;
  procedure FormCreate(Sender: TObject);
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
{把 DXImageList1 的 DXDraw 屬性指定為 DXDraw1}
procedure TForm1.FormCreate(Sender: TObject);
begin
 DXImageList1.DXDraw := DXDraw1; {這一步容易忽視; 也可以在設計時指定}
end;
{顯示列表中的第一個圖像}
procedure TForm1.Button1Click(Sender: TObject);
begin
 {Draw 函數的參數 1 是繪圖表面}
 {參數 2、3 是坐標}
 {參數 4 用來指定使用第幾個調色板, 現在默認只有一個調色板, 只能是 0}
 DXImageList1.Items[0].Draw(DXDraw1.Surface, 10, 10, 0);
 DXDraw1.Flip;
end;
{顯示列表中的第二個圖像}
procedure TForm1.Button2Click(Sender: TObject);
begin
 DXImageList1.Items[1].Draw(DXDraw1.Surface, 10, 10, 0);
 DXDraw1.Flip;
end;
end.


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved