文档章节

Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 259
阅读 3
收藏 0
点赞 0
评论 0

本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXDraws, StdCtrls;

type
  TForm1 = class(TForm)
    DXDraw1: TDXDraw;
    DXImageList1: TDXImageList;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

var
  PicItem: TPictureCollectionItem;
  w,h: Integer;

procedure TForm1.FormCreate(Sender: TObject);
const
  ImgPath1 = 'C:\Temp\DelphiX.bmp';
begin
  DXImageList1.DXDraw := DXDraw1;
  PicItem := TPictureCollectionItem(DXImageList1.Items.Add);
  PicItem.Picture.LoadFromFile(ImgPath1);
  w := PicItem.Width;
  h := PicItem.Height;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  PicItem.PatternWidth := w;
  PicItem.PatternHeight := h;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  PicItem.PatternWidth := w * 2;
  PicItem.PatternHeight := h;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
  PicItem.PatternWidth := w div 2;
  PicItem.PatternHeight := h;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  PicItem.PatternWidth := w;
  PicItem.PatternHeight := h * 2;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
  PicItem.PatternWidth := w;
  PicItem.PatternHeight := h div 2;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
  PicItem.PatternWidth := w*2;
  PicItem.PatternHeight := h*2;
  DXDraw1.Surface.Fill(0);
  PicItem.Draw(DXDraw1.Surface, 0, 0, 0);
  DXDraw1.Flip;
end;

end.

 
 
 
 
 

 

 

  

© 著作权归作者所有

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

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

Matrix4X4 ⋅ 2012/04/17 ⋅ 0

C++游戏开发

来自CSDN 相信有很多和我一样摸索着编游戏的自学者,自学是辛苦的,一没明确的引导,二没正确的工具,我就谈一下自己的经验,也许可以让你少走一点弯路。3D的先不谈,2D作为基础还是有必要研...

xiahuawuyu ⋅ 2012/04/17 ⋅ 0

delphi各个版本编译开关值

delphi各个版本编译开关值 {$IFDEF VER80} - Delphi 1 {$IFDEF VER90} - Delphi 2 {$IFDEF VER100} - Delphi 3 {$IFDEF VER120} - Delphi 4 {$IFDEF VER130} - Delphi 5 {$IFDEF VER140} - D......

伽罗kapple ⋅ 2016/03/01 ⋅ 0

Delphi 发展历史

自然人的软件著作权,保护期为自然人终生及其died后50年;软件是合作开发的,截止于最后died的自然人died后第50年的12月31日。法人或者其他组织的软件著作权,保护期为软件首次发表之后50年,...

vga ⋅ 2014/05/13 ⋅ 2

漫谈 C# 在游戏领域的应用

原文出处:慕容小匹夫 0x00 前言 随着微软越来越开放,C#也变得越来越吸引人们的眼球。而在游戏行业中,C#也开始慢慢地获得了关注。这不, 网易绝代双娇手游团队已经全面使用.Net Core支持前...

慕容小匹夫 ⋅ 2016/06/28 ⋅ 0

典型开源3D引擎分类比较

常见的3D引擎有:Unreal、Quake、Lithtech、OGRE、Nebula、Irrlicht、Truevision3D... 其中开源免费的有:OGRE、irrlicht、fly3d、NeoEngine、revolution3d、 Nebula2、Genesis3d等。 OGRE 在...

长平狐 ⋅ 2013/01/06 ⋅ 0

2012年5月编程语言排行榜 - Java 持续下挫

Java 自从上个月丢掉第一个的宝座以后,这个月的的走势依然下挫。在过去8年中,前10名的编程语言几乎没有变化,只是 Objective-C 把 Delphi 给挤了出去。人们对新语言的接受程度进展缓慢,这...

oschina ⋅ 2012/05/09 ⋅ 56

如何用 Delphi 创建系统服务程序?

如何用 Delphi 创建系统服务程序? Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处: (1)不用登陆进系统即可运行. (2)具有SYSTEM特权.所以你在进程管理...

vga ⋅ 2014/04/26 ⋅ 0

上位机与单片机通信开发总结

上位机使用delphi开发,采用串口和单片机通信。波特率1200,没有校验位,一位结束位。使用了第三方控件spcomm。 串口通信协议采用不定长设计,第一个字节表示消息头,每个消息为定长。消息最...

jingshishengxu ⋅ 2012/03/26 ⋅ 0

看看一些著名软件都是用什么语言写的

图例: “->” 表示有一个明显的迁移过程。 一、操作系统: Microsoft Windows :汇编 -> C -> C++ 备注:曾经在智能手机的操作系统(Windows Mobile)考虑掺点C#写的程序,比如软键盘,结果...

淡蓝色822 ⋅ 2017/07/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 55分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部