文档章节

WinAPI: SetRect 及初始化矩形的几种办法

涂孟超
 涂孟超
发布于 2014/09/26 15:33
字数 246
阅读 11
收藏 0
本例分别用五种办法初始化了同样的一个矩形, 运行效果图:


unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//使用 API 函数: SetRect
procedure TForm1.Button1Click(Sender: TObject);
var
  R: TRect;
begin
  SetRect(R, 20, 20, 80, 80);
  Canvas.Pen.Color := clBlue;
  Canvas.Rectangle(R);
end;

//使用 Classes.Rect 函数
procedure TForm1.Button2Click(Sender: TObject);
var
  R: TRect;
begin
  R := Rect(20, 20, 80, 80);
  Canvas.Pen.Color := clFuchsia;
  Canvas.Rectangle(R);
end;

//使用 Classes.Rect 函数, 用两个点合成
procedure TForm1.Button3Click(Sender: TObject);
const
  pt1: TPoint = (x:20; y:20);
  pt2: TPoint = (x:80; y:80);
var
  R: TRect;
begin
  R := Rect(pt1, pt2);
  Canvas.Pen.Color := clSkyBlue;
  Canvas.Rectangle(R);
end;

//矩形常量
procedure TForm1.Button4Click(Sender: TObject);
const
  R: TRect = (Left:20; Top:20; Right:80; Bottom:80);
begin
  Canvas.Pen.Color := clTeal;
  Canvas.Rectangle(R);
end;

//使用 Classes.Bounds 函数, 我最喜欢这种办法
procedure TForm1.Button5Click(Sender: TObject);
var
  R: TRect;
begin
  R := Bounds(20, 20, 60, 60);
  Canvas.Pen.Color := clWhite;
  Canvas.Rectangle(R);
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/05/23/1205628.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
PeekMessage&GetMessage

PeekMessage&GetMessage PeekMessage与GetMessage的对比 相同点: PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中 的消息派发出去。 不同点: 无论应用程序消...

vga
2014/04/13
0
0
【Visual C++】PeekMessage与GetMessage的对比

PeekMessage与GetMessage的对比 相同点: PeekMessage函数与GetMessage函数都用于查看应用程序消息队列,有消息时将队列中 的消息派发出去。 不同点: 无论应用程序消息队列是否有消息,Pee...

长平狐
2012/11/12
95
0
多线程同步:互斥对象、事件对象、关键代码段

互斥对象、事件对象、关键代码段 一、互斥对象和事件对象属于内核对象,利用内核对象进行线程同步,速度较慢,但可以实现在多个进程中各线程间进行同步。 二、关键代码段式工作在用户方式下,...

Git_Android
2012/09/12
0
0
Unity 使用有限状态机 完美还原 王者荣耀 虚拟摇杆

Unity 使用有限状态机 完美还原 王者荣耀 虚拟摇杆 效果如图所示 摇杆的UI组成 如图所示 简单的可以认为摇杆由1、2、3贴图组成 为摇杆的底座 为摇杆的杆 为摇杆的指向 可以理解这就是街机上的...

邹强
08/14
0
0
第二章 2绘制线条简单图形

线条和形状 同Windows其它版本相比,Windows CE提供相当少的功能的领域之一就是基本线条绘制和形状绘制功能。用来创建复杂环形的Chord, Arc, 和Pie函数被去掉了。大部分使用"当前点[current ...

技术小胖子
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

awk命令扩展使用操作

awk 中使用外部shell变量 示例1 [root@centos01 t1022]# A=888[root@centos01 t1022]# echo "" | awk -v GET_A=$A '{print GET_A}'888[root@centos01 t1022]# echo "aaaaaaaaaaaaa" | aw......

野雪球
20分钟前
4
0
深入解析MySQL视图VIEW

Q:什么是视图?视图是干什么用的? A:视图(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。   通过视图,可以展现基表的部分数据;...

IT--小哥
今天
5
0
虚拟机学习之二:垃圾收集器和内存分配策略

1.对象是否可回收 1.1引用计数算法 引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时候计数器值为0的对象就是不可能...

贾峰uk
今天
6
0
smart-doc功能使用介绍

smart-doc从8月份底开始开源发布到目前为止已经迭代了几个版本。在这里非常感谢那些敢于用smart-doc去做尝试并积极提出建议的社区用户。因此决定在本博客中重要说明下smart-doc的功能,包括使...

上官胡闹
昨天
12
0
JavaEE——Junit

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 Junit Junit又名单元测试,Junit是用来测试Jav...

凯哥学堂
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部