博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FireMonkey 绘图(1)
阅读量:5873 次
发布时间:2019-06-19

本文共 1726 字,大约阅读时间需要 5 分钟。

  hot3.png

FMX 的 Canvas 在不同的系统上会分别使用:
WinVista、Win7:
D2D (FMX.Canvas.D2D.pas)
WinXP:
GDI+ (FMX.Canvas.GDIP.pas)
Mac 系列:
Core Graphics (FMX.Canvas.Mac.pas)
和 HTML5 中的 Canvas 非常类似, 现在的 Canvas 模糊了 Pen 的概念:
之前的 Canvas.Pen 对应: Canvas.Stroke;
之前的 Canvas.Brush 对应: Canvas.Fill.
在 FMX 中, Canvas 无处不在, 其 Canvas.Stroke、Canvas.Fill 的状态也各不相同, 一般要先初始化它们.

测试: 窗体上放 Button1、Panel1, 激活 Panel1 的 OnPaint 事件:

procedure TForm1.FormCreate(Sender: TObject);begin  Self.OnPaint := Panel1.OnPaint;  Button1.OnPaint := Panel1.OnPaint;  Panel1.Opacity := 0.75;end;procedure TForm1.Panel1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);begin  {画直线}  Canvas.Stroke.Kind := TBrushKind.bkSolid;//  Canvas.Stroke.Color := claBlack;  Canvas.DrawLine(ARect.Location, ARect.BottomRight, 1);  {填充椭圆}//  Canvas.Fill.Kind := TBrushKind.bkSolid;  Canvas.Fill.Color := claGreen;  Canvas.FillEllipse(RectF(ARect.Width/5, ARect.Height/5, ARect.Width/5*4, ARect.Height/5*4), 1);end;

效果图:
26153335_Qoe0.png

绘图命令:

Canvas.DrawLine();      //Canvas.DrawRect();      //画矩形; 集合 TCorners: 四个角是否使用指定的样式类型; 枚举 TCornerType: 角样式类型Canvas.DrawRectSides(); //画矩形边; 集合 TSides 指定要画的边Canvas.DrawEllipse();   //Canvas.DrawArc();       //Canvas.DrawPath();      //Canvas.DrawBitmap();    //Canvas.DrawThumbnail(); //画略缩图Canvas.DrawPolygon();   //Canvas.FillRect();      //Canvas.FillEllipse();   //Canvas.FillArc();       //Canvas.FillPath();      //Canvas.FillPolygon();   //Canvas.FillText();      //{测试文本输出}procedure TForm1.Panel1Paint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF);begin  Canvas.Fill.Color := claRed;  Canvas.Font.Size := 30;  Canvas.FillText(ARect, '万一的 Delphi 博客', True, 1, [], TTextAlign.taLeading, TTextAlign.taCenter);end;

转载于:https://my.oschina.net/hermer/blog/319779

你可能感兴趣的文章
重写 Ext.form.field 扩展功能
查看>>
Linux下的搜索查找命令的详解(locate)
查看>>
福利丨所有AI安全的讲座里,这可能是最实用的一场
查看>>
开发完第一版前端性能监控系统后的总结(无代码)
查看>>
Python多版本情况下四种快速进入交互式命令行的操作技巧
查看>>
MySQL查询优化
查看>>
【Redis源码分析】如何在Redis中查找大key
查看>>
关于链接文件的探讨
查看>>
android app启动过程(转)
查看>>
Linux—源码包安装
查看>>
JDK8中ArrayList的工作原理剖析
查看>>
安装gulp及相关插件
查看>>
如何在Linux用chmod来修改所有子目录中的文件属性?
查看>>
Applet
查看>>
高并发环境下,Redisson实现redis分布式锁
查看>>
乌克兰基辅一世遗修道院起火 现场火光照亮夜空
查看>>
[iOS 10 day by day] Day 2:线程竞态检测工具 Thread Sanitizer
查看>>
Centos/Ubuntu下安装nodejs
查看>>
关于浏览器的cookie
查看>>
Hyper-V 2016 系列教程30 机房温度远程监控方案
查看>>