文档章节

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
[Beautifulzzzz的博客目录] 快速索引点这儿O(∩_∩)O~~,红色标记的是不错的(⊙o⊙)哦~

3D相关开发 [direct-X] 1、direct-X最小框架 [OpenGL] 1、环境搭建及最小系统 [OpenGL] 2、企业版VC6.0自带的Win32-OpenGL工程浅析 51单片机 [51单片机] 1602液晶显示控制代码 [51单片机] 1...

史迪奇2号
2017/08/01
0
0
第二章 2绘制线条简单图形

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java IO类库之PrintStreamWriter

* A <code>PrintStream</code> adds functionality to another output stream, * namely the ability to print representations of various data values * conveniently. Two other fea......

老韭菜
49分钟前
0
0
qduoj~前端~二次开发~笔记

青岛大学qdu的onlinejudge是js的写的前端,框架是vue.js,在nodejs上部署运行,其实整体运行还是建立在docker的容器虚拟环境里,这里暂时不需要docker。安装环境是Ubuntu14-64bit 1.安装一大...

虚拟世界的懒猫
53分钟前
6
0
ConcurrentHashMap源码解读

部分内容转自:http://jiabinyuan.xyz/#/app/archive/detail/25 内部结构 内部采用了segment结构,每一个segment相当于一个hashtable。看下面的结构图: 从图的结构我们可以了解到,Concurr...

edwardGe
58分钟前
1
0
Ubuntu终端Tab键自动补全

打开 /etc/bash.bashrc,找到下列代码,取消注释。 #enable bash completion in interactive shells#if ! shopt -oq posix; then# if [-f /usr/share/bash-completion/bash_compl......

大熊猫
今天
0
0
polipo socks5代理转http代理

天朝的网络,哎~ 装个 yarn 都时而会卡 假设在SSlocal 已经装好运行的前提下,来安装设置 polipo sudo apt-get install polipo sudo vim /etc/polipo/config 追加下列配置内容,并保存 socksP...

纯洁徐
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部