作为一张画布,在上面绘制各种图形或显示图像,但在CANVAS的使用过程中少不了一个特殊对象,那就是矩形RECT,灵活使用它会完成很多特殊的功能,为Delphi编制的Windows程序增加活力。

RECT的特点
----RECT既是一个特殊的数据结构,又是一个函数,它的作用就是定义一个矩形区域对象,而作为函数使用时它可以用两个属性(Tpiont型)指明区域范围,同时也可分解成四个单一的变量类型(Integer型),即:

topleft:左上角坐标(Tpiont型变量);
bottomright:右下角坐标(Tpiont型变量);
topleft.x或left:左上角横坐标;
topleft.y或top:左上角纵坐标;
bottomright.x或right:右下角横坐标;
bottomright.y或bottom:右下角纵坐标。
----例如,下面三种方法定义一个相同的RECT变量:

  Rect(10,10,110,210);
  topleft:=Piont(10,10);
bottomright:=Point(110,210);
  left:=10;top:=10;right:=110;Bottom:=210;
----下面的代码在Form1窗体上定义一个RECT矩形并用红色填充:

   var
    NewRect: TRect;
   begin
    NewRect := Rect(20, 30, 50, 90);
    Form1.Canvas.Brush.Color := clRed;
    Form1.Canvas.FillRect(NewRect);
  end;
----从上面可以看出,RECT只是一个通用变量,它并不属于任何控件本身,定义之后可由任何具有CANVAS属性的控件使用,以指明某控件表面的一个矩形区域,并且程序运行过程中可随意修改尺寸和位置。

RECT操作命令
Rect(x1,y1,x2,y2):定义Rect区域范围。
FillRect(rect:Trect):用填充色填充Rect区域。
FloodFill:用填充色填充Rect之外区域。
textrect(Rect:TRect;X,Y:Integer;constText:string):在Rect对象中显示文本,其中的X、Y为显示文本的坐标值,是相对于画布的坐标而不是相对于RECT的坐标;const为显示的字符个数;string为待显示的字符串,只有在RECT内的字符才能显示出来,超出部分不显示。
stretchdraw(constRect:TRect;Graphic:TGraphic):把图像文件填充到Rect之中,并且图像按RECT的尺寸自动伸缩,其中的Graphic可为BMP或ICO等图像资源。
font.size:定义画布上显示文字的尺寸。
font.color:定义画布上显示文字的颜色。
textwidth:返回字符串的长度。
textheight:返回字符串的高度。
Brush.Color:定义画布的填充颜色。
Copyrect(Dest:TRect;Canvas:Tcanvas;Source:TRect):把图像从一个矩形中拷到另一个矩形之中,并且按目标矩形尺寸自动伸缩,其中,Dest为目标画布矩形,Canvas为源画布,Source为源矩形。
----由于上述命令均是基于画布本身使用的,所以具体使用时必须加上控件及画面属性,例如下面的代码:

   var
    TheRect: TRect;
   begin
    TheRect.Top := 10;
    TheRect.Left := 10;
    TheRect.Bottom := 100;
    TheRect.Right := 100;
  Form1.Canvas.TextRect(TheRect,0,0,‘Hello,
world!‘);
end;

最新文章

  1. 通过LoadRunner - Analyze详细分析页面元素请求
  2. 【BZOJ】3427: Poi2013 Bytecomputer
  3. 与众不同 windows phone (48) - 8.0 其它: C# 调用 C++
  4. Ov
  5. linux C(hello world) 解方程
  6. 获取资源ID
  7. Secant Method (Website)
  8. python construct文档
  9. AngularJS ng-class用法
  10. Delphi读写UTF-8、Unicode格式文本文件
  11. [转]Linux下CodeBlocks的交叉编译
  12. HDU 1698 Just a Hook 线段树+lazy-target 区间刷新
  13. Tomcat出现validateJarFile-jar not loaded问题
  14. 【nginx】4xx,5xx 保持自定义header
  15. AtCoder Grand Contest 031 简要题解
  16. Java三大特性:封装,继承,多态
  17. Java - 线程优先级和守护线程
  18. 读懂Netty的高性能架构之道
  19. MongoDB复制原理
  20. MVC出现错误:系统找不到指定文件(异常来自 HRSULT:0x80070002)

热门文章

  1. iPhone之Quartz 2D系列--编程指南(1)概览
  2. kafka consumer频繁reblance
  3. JVM内存管理和JVM垃圾回收机制
  4. toString&&equals方法
  5. 开发期间的GWT设置---加快编译速度
  6. Android摄像头抓取图像的格式
  7. BFS-hdu-4101-Ali and Baba
  8. 往另外1个ListView中添加当前选中的项目
  9. 改变Android按钮背景颜色的高效方法
  10. 使用jsdoc-toolkit来自动生成js api文档