文档章节

Delphi XE2 之 FireMonkey 入门(6) - TLine、TEllipse、TCircle、TPie、TArc、TRectangle、TRoundRect、TCalloutRe...

涂孟超
 涂孟超
发布于 2014/09/26 15:36
字数 445
阅读 10
收藏 0

它们都是继承自 TShape 类, 共同拥有如下属性:
Fill            : TBrush;      //填充
Stroke          : TBrush;      //边线(画笔)
StrokeThickness : Single;      //厚度(边线宽度)
StrokeCap       : TStrokeCap;  //线帽样式, TStrokeCap (枚举)类型
StrokeDash      : TStrokeDash; //虚线样式, TStrokeDash(枚举)类型
StrokeJoin      : TStrokeJoin; //拐点结合样式, TStrokeJoin(枚举)类型
ShapeRect       : TRectF;      //可填充范围的矩形(相对于当前图形)


TLine 用不着 Fill, 但增加了 LineType 属性(TLineType 枚举类型);

procedure TForm1.Button1Click(Sender: TObject);
begin
  Line1.LineType := TLineType.ltDiagonal; //斜线
  Line2.LineType := TLineType.ltTop;      //横线
  Line3.LineType := TLineType.ltLeft;     //竖线
end;


TElipse 和 TCircle 没有新属性, 应该也用不着 StrokeCap、StrokeJoin.
procedure TForm1.Button1Click(Sender: TObject);
begin
  Ellipse1.StrokeDash := TStrokeDash.sdDot; //虚线样式
  Circle1.Fill.Kind := TBrushKind.bkNone;   //取消填充
end;


TArc 和 TPie 增加了 StartAngle、EndAngle 属性.



TRectangle 增加了控制圆角的 XRadius、YRadius 属性、控制边线的 Sides 属性、控制四个角的 Corners、CornerType 属性;

TRoundRect 只加了 Corners 属性; 看来要做更随意的圆角矩形得用 TRectangle 而不是 TRoundRect.
procedure TForm1.Button1Click(Sender: TObject);
begin
  Rectangle1.Position.X := 50;
  Rectangle1.Position.Y := 10;
  Rectangle1.Width := 100;
  Rectangle1.Height := 120;
  Rectangle1.StrokeThickness := 16;
  Rectangle1.Fill.Color := $80FF0000;
  Rectangle1.Stroke.Color := $800000FF;

  Rectangle1.XRadius := 8;
  Rectangle1.YRadius := 8;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Rectangle2.Position.X := 350;
  Rectangle2.Position.Y := 10;
  Rectangle2.Width := 100;
  Rectangle2.Height := 120;
  Rectangle2.StrokeThickness := 4;
  Rectangle2.Fill.Color := claRed;
  Rectangle2.Stroke.Color := claBlack;

  Rectangle2.CornerType := TCornerType.ctBevel;
  Rectangle2.Corners := [TCorner.crBottomLeft, TCorner.crBottomRight];
  Rectangle2.Sides := [TSide.sdBottom, TSide.sdRight];

  //关于 Corners 和 Sides 还有两个非常方便的常量: AllCorners、AllSides
end;


TCalloutRectangle 很有意思, 矩形外带一个三角, 应该是用于图形化的注释.

给它增加的 CalloutWidth、CalloutLength、CalloutPosition、CalloutOffset 四个属性都是用于控制三角的.
procedure TForm1.Button1Click(Sender: TObject);
begin
  CalloutRectangle1.Width := 200;
  CalloutRectangle1.Height := 150;
  CalloutRectangle1.CalloutPosition := TCalloutPosition.cpBottom;
  CalloutRectangle1.CalloutWidth := CalloutRectangle1.Width / 4;
  CalloutRectangle1.CalloutLength := CalloutRectangle1.Height / 2;
  CalloutRectangle1.CalloutOffset := -CalloutRectangle1.Width / 2;
end;


这其中需要进一步学习的是 Fill、Stroke 属性, 它们都是 TBrush 类型, 会涉及到 TBitmap、TBitmapObject、TCanvas 等等.

本文转载自:http://www.cnblogs.com/del/archive/2011/09/22/2185086.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
Delphi XE2:这就是我们所期待的Delphi吗?

版权声明:本文为 OSChina.NET 原创编译 转载务必注明出处,并保留链接! 作者:蒂姆.安德森 Delphi是被一些人遗忘了的快速应用程序开发工具,但它与可视组件库相结合,依然是开发Windows本机...

虫虫
2011/10/31
40.4K
49
Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来

Delphi XE2 新功能:LiveBindings --- 把对象之间的属性绑定起来日期:2011年9月9日 作者: 人气:5340 查看:[大字体 中字体 小字体] XE2 有了 FireMonkey 框架,它不同于 VCL ,以往的数据感...

vga
2016/08/09
17
0
PostgreDAC 2.8.0,Delphi的PostgreSQL组件

PostgreDAC 2.8.0 发布了,该版本首次通过 RAD Studio XE2 支持 Mac OS X 系统,大大提升了 FireMonkey 支持,修复了关于 TPSQLMonitor 的 bug。 完整改进记录: [!] FireMonkey and cross p...

红薯
2012/03/20
662
1
最全面的常用Delphi第三方控件汇总—报表、图表、界面、数据库等

有网友问我常用Delphi第三方控件及功能。我先大概整理一下,以后会在文章里面碰到时再仔细介绍。 报表图表方面: TeeChart Pro 在delphi 的图形显示方面目前唯一的选择,虽然从delphi 3 就随...

Leamontea
2012/12/03
0
2
PostgreSQL的Delphi组件--PostgreDAC

PostgreDAC 是适合 Delphi/C++ Builder 操作 PostgreSQL 数据库的功能非常强大的组件包,允许你创建直连 PostgreSQL 数据库的 Delphi/C++ Builder 应用,无需 BDE 和 ODBC 支持。 使用 Post...

匿名
2012/03/20
2.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

阿里面试题

https://yq.aliyun.com/articles/6656 https://yq.aliyun.com/articles/7468

jason_kiss
3分钟前
0
0
阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统

背景 秒杀活动是绝大部分电商选择的低价促销,推广品牌的方式。不仅可以给平台带来用户量,还可以提高平台知名度。一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验...

别打我会飞
10分钟前
1
0
188. jsp提出公共的资源

平时我们会在一个地方 写一些重复的东西,为了便于管理我们需要将它提炼出来 1. 问题现象 2. 解决方式 (1) 提炼出该内容 <script type="text/javascript"> var net ={url: "${pageContext....

Lucky_Me
17分钟前
0
0
集合

集合 集合 集合介绍 前面的学习,我们知道数据多了,使用数组存放。而且数组中存放的都是基本类型的数据,并且数组是定长的。当在程序中创建的对象比较多的时候,需要对这些对象进行统一的管...

码农屌丝
24分钟前
0
0
jsp页面手写翻页小记

<s:if test="totalPage > 1"> <tr align="center"> <td colspan="4" align="center" style="height: 25px; text-align: center;">......

JackChenzp
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部