文档章节

Delphi 与 DirectX 之 DelphiX(10): TPictureCollectionItem.StretchDraw - 绘制到指定矩形

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 151
阅读 11
收藏 0

本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXDraws, StdCtrls, 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}

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);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  DXDraw1.Surface.Fill(0);
  PicItem.StretchDraw(DXDraw1.Surface, DXDraw1.Surface.ClientRect, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  r: TRect;
begin
  r.Left := (DXDraw1.Width - PicItem.Width) div 2;
  r.Top := (DXDraw1.Height - PicItem.Height) div 2;
  r.Right := r.Left + PicItem.Width;
  r.Bottom := r.Top + PicItem.Height;

  DXDraw1.Surface.Fill(0);
  PicItem.StretchDraw(DXDraw1.Surface, r, 0);
  DXDraw1.Flip;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/01/13/1374980.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Flash在DirectX中的绘制

这里使用的是之前我说过的OLE控件在Direct3D中的渲染方法, 自己不进行swf的解析, 这不现实. 前提条件: COM编程, OLE编程, DirectX编程, ActionScript/Flash(可选). 创建一个ShockwaveFlashO...

haogood
2012/04/12
0
0
疯狂ios讲义之使用路径

正如前面提到的,Quartz 2D只提供了绘制矩形、椭圆的函数,并没有直接提供绘制圆角矩形、三角形等几何图形的函数。为了绘制更复杂的图形,必须启用路径。 表12.4列出了Quartz 2D为创建路径提...

博文视点
2014/01/29
426
0
Direct2D教程(十)绘制文本

概述 在Direct2D中,文本的绘制是通过DirectWrite来实现的,DirectWrite实际上已经是一个独立的DirectX组件了。关于DirectWrite,我摘录了MSDN的一段文字。 DirectWrite介绍 当今的应用程序应...

吞吞吐吐的
2017/10/17
0
0
HTML5 元素用于图形的绘制,通过脚本(通常是javascript)完成

HTML5 <canvas> 元素用于图形的绘制,通过脚本(通常是javascript)完成 <canvas> 标签只是图形容器,您必须使用脚本来绘制图形 可以通过多种方法使用canvas绘制路径盒圆以及添加图像 创建一个画...

冬瓜1
2015/09/27
184
1
第155天:canvas(二)

一、添加样式和颜色 在前面的绘制矩形章节中,只用到了默认的线条和颜色。 如果想要给图形上色,有两个重要的属性可以做到。 设置图形的填充颜色 设置图形轮廓的颜色   备注: 1 function...

半指温柔乐
01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
2
0
Shell | linux安装包不用选择Y/N的方法

apt-get install -y packageOR echo "y" | sudo apt-get install package

云迹
今天
2
0
Hadoop的大数据生态圈

基于Hadoop的大数据的产品圈 大数据产品的一句话概括 Apache Hadoop: 是Apache开源组织的一个分布式计算开源框架,提供了一个分布式文件系统子项目(HDFS)和支持MapReduce分布式计算的软件架...

zimingforever
今天
5
0
八大包装类型的equals方法

先看其中一个源码 结论:八大包装类型的equals方法都是先判断类型是否相同,不相同则是false,相同则判断值是否相等 注意:包装类型不能直接用==来等值比较,否则编译报错,但是数值的基本类型...

xuklc
今天
2
0
NoSQL , Memcached介绍

什么是NoSQL 非关系型数据库就是NoSQL,关系型数据库代表MySQL 对于关系型数据库来说,是需要把数据存储到库、表、行、字段里,查询的时候根据条件一行一行地去匹配,当量非常大的时候就很耗...

TaoXu
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部