Delphi 与 DirectX 之 DelphiX(6): 让 TDXImageList 和常规 VCL 交互使用
本例测试了两个问题:
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 交互使用相关推荐
- Delphi 与 DirectX 之 DelphiX(12): TPictureCollectionItem.DrawAlpha
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(25): TDIB.Blur();
DelphiX 的组件面板上, 第二个就是 TDXDIB; TDXDIB.DIB 是 TDXDIB 的唯一属性(其他是 TComponent 固有的); TDXDIB.DIB 属性是一个 TDIB 对 ...
- Delphi 与 DirectX 之 DelphiX(89): TDIB.DrawAlphaMask();
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(77): TDIB.Distort();
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(52): TDIB.DoSaturation();
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(35): TDIB.Saturation();
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(95): TDIB.x
//让 TDIB 的这些特效烦透了: 多.还重复.又不完善; 还没有测试或测试失败的方法: procedure DrawShadow(SrcDIB: TDIB; X, Y, Width, Height ...
- Delphi 与 DirectX 之 DelphiX(33): TDIB.SmoothRotateWrap();
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- Delphi 与 DirectX 之 DelphiX(72): TDIB.SephiaEffect();
为什么80%的码农都做不了架构师?>>> 本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, V ...
最新文章
- HDU 1248 寒冰王座
- Antd组件中单选框、复选框自定义样式的优雅实现
- 如何更改已生成的APK的APP名字?
- 用python爬网站评论_python爬取携程景点评论信息
- 如果信用卡欠款不还被坐牢,那所欠的钱还用还吗?
- [Axure教程]0001.新手入门基础
- linux 树状结构图,linux下tree指令的用法, 树状图列出目录, 树状图逐级列出目录...
- 如何将日志配置文件放入到Apollo配置中心并支持热更新
- Python多线程实例
- 抽头延时信道模型matlab,频率选择性衰落信道模型研究与仿真.docx
- ic 卡获取帐号apdu指令_APDU指令格式解析
- 单词记忆系统-项目需求分析
- AR涂涂乐项目之识别图制作制作地球仪线框二
- 【JetBrain】JetBrain系列软件设置背景图
- 怎样在拼打日语汉字时,在字上同时显示假名
- 连接线是计算机硬件吗,音箱线怎么连接电脑?有源音箱和无源音箱连接电脑教程...
- CSS3 Web工程师工作场景动画
- 早上第一杯别喝四种水
- 真•业界第一个性能统计分析框架 -- Hiper
- 【Cloudaily】蚂蚁金服与RISELab达成合作,Hadoop成新一波数据库攻击目标
热门文章
- java调试生命周期,一种基于JAVA的智能合约生命周期的管理方法与流程
- MAC显示隐藏文件和文件夹
- 【项目管理】ITTO-相关方管理
- 笔记-信息系统开发基础-面向对象基本概念-多态
- 笔记-项目沟通管理-沟通管理计划
- Echarts中柱状图X轴显示时间显示不开倾斜显示的属性
- Mysql中怎样设置指定ip远程访问连接
- 若依管理系统前后端分离版基于ElementUI和SpringBoot怎样实现Excel导入和导出
- cnpm install时提示resource busy or locked,syslink...
- Java中判断List中是否有重复元素