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, );   {填充椭圆}
//  Canvas.Fill.Kind := TBrushKind.bkSolid;
  Canvas.Fill.Color := claGreen;
  Canvas.FillEllipse(RectF(ARect.Width/, ARect.Height/, ARect.Width/*, ARect.Height/*), );
end;

效果图:




绘图命令:

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 := ;
  Canvas.FillText(ARect, '万一的 Delphi 博客', True, , [], TTextAlign.taLeading, TTextAlign.taCenter);
end;

FireMonkey 绘图(1)的更多相关文章

  1. Firemonkey 绘图 TPathData

    Firemonkey  TPathData TPath控件 procedure TForm12.FormPaint( Sender : TObject; Canvas : TCanvas; const ...

  2. [原创] 改善 Firemonkey Canvas 几何绘图质量问题(移动平台)

    说明: Fiiremonkey 的跨平台能力,大家有目共睹(一码同介面跨四平台),唯独移动平台在几何绘图方面,质量始终不尽人意,我也曾试着去修正(如:修正曲线平滑问题),也曾找过第三方案(如:AggP ...

  3. [试玩] FMXLinux (Firemonkey for Linux) Linux 桌面开发(第三方插件)

    FMXLinux 是一个可以用来开发 Linux 桌面软件的第三方插件,它需要配合 Delphi 10.2 Toyko 官网:http://www.fmxlinux.com/ 使用方法:开启 FMX ...

  4. [示例] Firemonkey 画出 1 点像素的线

    说明:在 Firemonkey 在移动平台 Android & iOS 要直接在 Canvas 画出 1 点像素的线,似乎有点困难,不过利用一点小技巧,还是能达到这个要求的,首先要建立一个 B ...

  5. FireMonkey 结构性初略分析

    Delphi 下的FireMonkey,很好地实现了 DirectUI与跨平台.学习了解他,对DirectUI编程及项目的跨平台实现有一定帮助.虽然作为开发者个体,并不需要了解太多这些东西,只要求拿来 ...

  6. Canvas绘图之平移translate、旋转rotate、缩放scale

    画布操作介绍 画布绘图的环境通过translate(),scale(),rotate(), setTransform()和transform()来改变,它们会对画布的变换矩阵产生影响. 函数 方法 描 ...

  7. 用html5的canvas和JavaScript创建一个绘图程序

    本文将引导你使用canvas和JavaScript创建一个简单的绘图程序. 创建canvas元素 首先准备容器Canvas元素,接下来所有的事情都会在JavaScript里面. <canvas ...

  8. echarts+php+mysql 绘图实例

    最近在学习php+mysql,因为之前画图表都是直接在echart的实例demo中修改数据,便想着两相结合练习一下,通过ajax调用后台数据画图表. 我使用的是echart3,相比较第二版,echar ...

  9. html5 canvas常用api总结(二)--绘图API

    canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而 ...

随机推荐

  1. decodeURI decodeURIComponent

    操作 url 常用到编码与解码,一一对应就好 给力文章

  2. AutoLayout and Sizeclasses讲解

    iOS8和iPhone6发布已经过去蛮久了,广大的果粉终于迎来了大屏iPhone,再也不用纠结为大屏买三星舍苹果了…但是对于iOS开发人员来说,迎来了和Android开发开发一样的问题—>各种屏 ...

  3. iphone手机软件安装目录

    iPhone系统常用文件夹位置 1.[/Applications] 常用软件的安装目录 2. [/private /var/ mobile/Media /iphone video Recorder] ...

  4. Solaris 11中配置基于link的IPMP

    http://blog.itpub.net/29960937/viewspace-1347901/ Tips: Record and feedback errors you have encounte ...

  5. 费用流 Dijkstra 原始对偶方法(primal-dual method)

    简单叙述用Dijkstra求费用流 Dijkstra不能求有负权边的最短路. 类似于Johnson算法,我们也可以设计一个势函数,以满足在与原图等价的新图中的边权非负. 但是这个算法并不能处理有负圈的 ...

  6. SpringMVC POJO入参过程分析

    SpringMVC确定目标方法POJO类型的入参过程 1.确认一个key: (1).若目标方法的POJO类型的参数没有使用@ModelAttribute作为修饰,则key为POJO类名第一个字母的小写 ...

  7. 使用@ConditionalOnProperty注解

    Spring boot中的注解@ConditionalOnProperty,可以通过配置文件中的属性值来判定configuration是否被注入, @Retention(RetentionPolicy ...

  8. Xshell6-项目使用

    前端开发中,涉及服务器的地方一般都交给后端处理,这样有时候很不方便,所以,自己来上传服务器是非常爽的啦 工具: Xshell6 传送门: http://www.netsarang.com/produc ...

  9. Zookeeper安装使用--单机模式

    1.version package准备 zookeeper-3.4.5.tar.gz 2.mkdir zookeeper folder.tar the package  mkdir zookeeper ...

  10. 【转】H5 浏览器和 webview 后退缓存机制

    来源:https://juejin.im/entry/588b44a08fd9c544813ed5b3 一.背景 用户点击浏览器工具栏中的后退按钮,或者移动设备上的返回键时,或者JS执行history ...