文档章节

Delphi 与 DirectX 之 DelphiX(11): TPictureCollectionItem.DrawAdd、DrawSub

涂孟超
 涂孟超
发布于 2014/09/26 15:29
字数 190
阅读 5
收藏 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
  pic1,pic2: TPictureCollectionItem;

procedure TForm1.FormCreate(Sender: TObject);
const
  ImgPath1 = 'C:\Temp\Back.jpg';
  ImgPath2 = 'C:\Temp\DelphiX.bmp';
begin
  DXImageList1.DXDraw := DXDraw1;
  pic1 := TPictureCollectionItem(DXImageList1.Items.Add);
  pic1.Picture.LoadFromFile(ImgPath1);
  pic2 := TPictureCollectionItem(DXImageList1.Items.Add);
  pic2.Picture.LoadFromFile(ImgPath2);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  r: TRect;
begin
  r := Bounds((DXDraw1.Width - pic2.Width) div 2,
              (DXDraw1.Height - pic2.Height),
               pic2.Width,
               pic2.Height);

  DXDraw1.Surface.Fill(0);
  pic1.StretchDraw(DXDraw1.Surface, DXDraw1.ClientRect, 0);
  pic2.DrawAdd(DXDraw1.Surface, r, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  r: TRect;
begin
  r := Bounds((DXDraw1.Width - pic2.Width) div 2,
              (DXDraw1.Height - pic2.Height),
               pic2.Width,
               pic2.Height);

  DXDraw1.Surface.Fill(0);
  pic1.StretchDraw(DXDraw1.Surface, DXDraw1.ClientRect, 0);
  pic2.DrawSub(DXDraw1.Surface, r, 0);
  DXDraw1.Flip;
end;

end.

 
 
 
 
 

 

 

  

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

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
开源游戏框架(转至wiki)

免费和开源引擎,转载自维基 Agar - 一个高级图形应用程序框架,用于2D和3D游戏。 Allegro - 基于 C/C++ 的游戏引擎,支持图形,声音,输入,游戏时钟,浮点,压缩文件以及GUI。 Axiom 引擎 ...

Matrix4X4
2012/04/17
1K
0
DirectX 11 支持游戏已公布

在DirectX 10后,微软放出了DirectX 11 with Direct3D 11预览版,同时也公布了D11支持的游戏。DirectX 11主要面向Windows Vista和Windows 7,增加了很多新特性和开放式标准的支持。DirectX 1...

红薯
2009/03/31
905
0
directx 11 64位

directx 11 64位是一款微软出品的一个多媒体编程接口,这款程序专门用于微软各个平台的电子游戏开发。DirectX 11带来了Tessellation(拆嵌式细分曲面技术)、Multi-Threading(多线程)、Dir...

相心的泪
2016/07/20
7
0
【Visual C++】游戏开发笔记二十四 由DirectX的几个版本说开去

本系列文章由zhmxy555(毛星云)编写,转载请注明出处。 http://blog.csdn.net/zhmxy555/article/details/7629288 作者:毛星云 邮箱: happylifemxy@qq.com 期待着与志同道合的朋友们相互交...

长平狐
2012/11/12
76
0
运行游戏时出现0xc000007b错误的解决方法

如图,这个错误使无数玩家烦恼。 出现这个错误,可能是硬件的问题,也可能是软件的问题。但是,由于硬件引起该问题的概率很小,并且除了更换硬件之外没有更好的解决方法,因此本文将详细介绍...

VBcom
2010/12/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

linux 扩展lv

相关概念 逻辑卷可以实现硬盘空间的动态划分和管理。 1】 物理卷 LV 处于最低层,可以是物理硬盘上的分区,也可以是整个物理硬盘 2】 卷组 VG 卷组建立在物理卷之上,一个卷组至少要包括一个...

hnairdb
9分钟前
1
0
如何快速定位Ruby函数源码

如何快速定位Ruby函数源码 1、gem gem which sidekiq 2、bundle bundle show redis 3、CTags Sublime extend ActiveSupport::Concernrescue_fromcurrent_company.cc_ad_tasks.creat......

mingle
10分钟前
1
0
基于 DataLakeAnalytics 的数据湖实践

随着软硬件各方面条件的成熟,数据湖(Data Lake)已经越来越受到各大企业的青睐, 与传统的数仓实践不一样的是,数据湖不需要专门的“入仓”的过程,数据在哪里,我们就从哪里读取数据进行分析...

阿里云云栖社区
12分钟前
1
0
word文档处理成富文本生成sql语句导入mysql

问题:需要将大量的已存在的word文档导入到web项目里在网站展示,不可能通过编辑录入的方式处理,通过程序实现。 解决思路:通过读取word文档处理成html,再获取html富文本内容,拼接成sql,...

S三少S
19分钟前
35
0
WAF开放规则定义权:专家策略+用户自定义策略=Web安全

在第一期“漫说安全”栏目中,我们用四格漫画的形式介绍了基于深度学习的阿里云WAF到底智能在哪里,能帮客户解决什么问题。 在今天的这期栏目里,我们依然通过漫画这种通俗易懂的方式,与大家...

迷你芊宝宝
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部