• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi与DirectX之DelphiX(5):初识TDXImageList

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

新建工程后, 在窗体上分别添加: DXDraw1、DXImageList1;

然后只需要下面四行代码即可在 DXDraw1 中显示 DelphiX.dxg 图像:
procedure TForm1.Button1Click(Sender: TObject);
begin
  DXImageList1.Items.LoadFromFile('C:\Temp\DelphiX.dxg');
  DXImageList1.DXDraw := DXDraw1;
  DXImageList1.Items[0].Draw(DXDraw1.Surface, 10, 10, 0);
  DXDraw1.Flip;
end;


你如果没有 dxg 格式的图像, 就下载本例用到的图像吧(下载后解压到 C:\Temp\):
https://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.



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
谱聚类算法—Matlab代码发布时间:2022-07-18
下一篇:
基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap