本例测试了两个问题:
1、其他 VCL 加载的图片能否给 TDXImageList 使用;
2、TDXImageList 中的图片能否给其他 VCL 使用.

例子中先用 TPicture 加载了图片, 然后给 TDXImageList;
然后把图片绘制在了窗体上, 而非 TDXDraw 中.

继续了解点 TDXImageList:
TDXImageList 控件只有两个属性: DXDraw 和 Items.
DXDraw 是图像的目的地, 很好理解;
Items 是一个对象集合: TPictureCollection;
TPictureCollection 集合中包含的是一组 TPictureCollectionItem 对象;
TPictureCollectionItem 对象有 Picture 属性, 这和其他 VCL 中的 TPicture 兼容!

本例用到了 TPictureCollectionItem 对象, 测试效果图:



代码文件:


unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DXDraws, StdCtrls;typeTForm1 = class(TForm)DXImageList1: TDXImageList;Button1: TButton;Button2: TButton;procedure FormCreate(Sender: TObject);procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);end;varForm1: TForm1;implementation{$R *.dfm}{借用其他 VCL 控件加载图片}
procedure TForm1.FormCreate(Sender: TObject);
varpic: TPicture;
beginpic := TPicture.Create;pic.LoadFromFile('c:\Temp\Test.bmp');DXImageList1.Items.Add;DXImageList1.Items[0].Picture.Assign(pic);pic.Free;
end;{这个代码貌似简单, 但代码提示不好}
procedure TForm1.Button1Click(Sender: TObject);
beginSelf.Refresh;Self.Canvas.Draw(0, 0, DXImageList1.Items[0].Picture.Graphic);
end;{使用 TPictureCollectionItem 对象中转一下, 写起来更顺手}
procedure TForm1.Button2Click(Sender: TObject);
varpicItem: TPictureCollectionItem;
beginSelf.Refresh;picItem := DXImageList1.Items[0];Self.Canvas.StretchDraw(ClientRect, picItem.Picture.Graphic);
end;end.

Delphi 与 DirectX 之 DelphiX(6): 让 TDXImageList 和常规 VCL 交互使用相关推荐

  1. Delphi 与 DirectX 之 DelphiX(12): TPictureCollectionItem.DrawAlpha

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  2. Delphi 与 DirectX 之 DelphiX(25): TDIB.Blur();

    DelphiX 的组件面板上, 第二个就是 TDXDIB; TDXDIB.DIB 是 TDXDIB 的唯一属性(其他是 TComponent 固有的); TDXDIB.DIB 属性是一个 TDIB 对 ...

  3. Delphi 与 DirectX 之 DelphiX(89): TDIB.DrawAlphaMask();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  4. Delphi 与 DirectX 之 DelphiX(77): TDIB.Distort();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  5. Delphi 与 DirectX 之 DelphiX(52): TDIB.DoSaturation();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  6. Delphi 与 DirectX 之 DelphiX(35): TDIB.Saturation();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  7. Delphi 与 DirectX 之 DelphiX(95): TDIB.x

    //让 TDIB 的这些特效烦透了: 多.还重复.又不完善; 还没有测试或测试失败的方法: procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height ...

  8. Delphi 与 DirectX 之 DelphiX(33): TDIB.SmoothRotateWrap();

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  9. Delphi 与 DirectX 之 DelphiX(72): TDIB.SephiaEffect();

    为什么80%的码农都做不了架构师?>>>    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...

最新文章

  1. HDU 1248 寒冰王座
  2. Antd组件中单选框、复选框自定义样式的优雅实现
  3. 如何更改已生成的APK的APP名字?
  4. 用python爬网站评论_python爬取携程景点评论信息
  5. 如果信用卡欠款不还被坐牢,那所欠的钱还用还吗?
  6. [Axure教程]0001.新手入门基础
  7. linux 树状结构图,linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录...
  8. 如何将日志配置文件放入到Apollo配置中心并支持热更新
  9. Python多线程实例
  10. 抽头延时信道模型matlab,频率选择性衰落信道模型研究与仿真.docx
  11. ic 卡获取帐号apdu指令_APDU指令格式解析
  12. 单词记忆系统-项目需求分析
  13. AR涂涂乐项目之识别图制作制作地球仪线框二
  14. 【JetBrain】JetBrain系列软件设置背景图
  15. 怎样在拼打日语汉字时,在字上同时显示假名
  16. 连接线是计算机硬件吗,音箱线怎么连接电脑?有源音箱和无源音箱连接电脑教程...
  17. CSS3 Web工程师工作场景动画
  18. 早上第一杯别喝四种水
  19. 真•业界第一个性能统计分析框架 -- Hiper
  20. 【Cloudaily】蚂蚁金服与RISELab达成合作,Hadoop成新一波数据库攻击目标

热门文章

  1. java调试生命周期,一种基于JAVA的智能合约生命周期的管理方法与流程
  2. MAC显示隐藏文件和文件夹
  3. 【项目管理】ITTO-相关方管理
  4. 笔记-信息系统开发基础-面向对象基本概念-多态
  5. 笔记-项目沟通管理-沟通管理计划
  6. Echarts中柱状图X轴显示时间显示不开倾斜显示的属性
  7. Mysql中怎样设置指定ip远程访问连接
  8. 若依管理系统前后端分离版基于ElementUI和SpringBoot怎样实现Excel导入和导出
  9. cnpm install时提示resource busy or locked,syslink...
  10. Java中判断List中是否有重复元素