• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

DelphiXE2之FireMonkey入门(6)-TLine、TEllipse、TCircle、TPie、TArc、TRectangle、T ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

它们都是继承自 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 等等.

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
DELPHI实现关机,兼容全部WINDOWS系统 转发布时间:2022-07-18
下一篇:
Matlab定义符号函数(ZZ)发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap