问题:使用 Canvas.DrawPath 绘制时,最后一点无法画到终点位置。(这个问题要在粗线才能察觉)

适用:Delphi 10 Seattle (或更早的版本) for Android & iOS

修复方法:

请将源码 FMX.StrokeBuilder.pas 复制到自己的工程目录里,再进行修改。

procedure TStrokeBuilder.BuildSolidPolygon(const Points: TPolygon; const Opacity: Single; BreakAtEnd: Boolean);

...略...

  while CurIndex < Length(Points) do
begin
if (CurIndex >= Length(Points) - ) and BreakAtEnd and (Points[] <> Points[Length(Points) - ]) then
{--->删除这行 Break;}
{+++>新增代码}
// 修复曲线最后一点断线的问题 by Aone (2016/03/25)
begin
PieceDirVec := (DestPos - SrcPos).Normalize;
ThickPerp := TPointF.Create(-PieceDirVec.Y, PieceDirVec.X) * FHalfThickness; InsertVertex(DestPos - ThickPerp, FStrokeColor);
InsertVertex(DestPos + ThickPerp, FStrokeColor); if PrevVerticesPlaced then
begin
InsertIndex(FCurrentVertex - );
InsertIndex(FCurrentVertex - );
InsertIndex(FCurrentVertex - ); InsertIndex(FCurrentVertex - );
InsertIndex(FCurrentVertex - );
InsertIndex(FCurrentVertex - );
end; Break;
end;
{<+++} ...略... end;

效果:

官方有人提交 QC 了:

RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing problems
https://quality.embarcadero.com/browse/RSP-14309

最新文章

  1. J2EE,J2SE,J2ME,JDK,SDK,JRE,JVM区别
  2. C++的XML编程经验――LIBXML2库使用指南[转]
  3. db4o官方停止支持及面向对象数据库的一些感想
  4. [置顶] What is the difference between Category and Class Extension?
  5. docker- 构建 oracle2c-r2(12.2.0.1) 的镜像
  6. Unity 发布的 WenGL 使用SendMessage传递多个参数
  7. JavaScript八张思维导图—字符串用法
  8. 使用Google Cloud Platform构建机器学习项目-宠物识别
  9. Ubuntu下useradd与adduser区别
  10. 非常完善的两个微服务框架比较(SpringCloud与Dubbo)
  11. SpringBoot使用缓存
  12. 自然语言处理hanlp的入门基础
  13. 【六】注入框架RoboGuice使用:(Singletons And ContextSingletons)
  14. docx4j基本操作
  15. 自行申请德国的VAT号码?
  16. Java - 复合模式优于继承
  17. 009---linux进程管理
  18. bzoj 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛
  19. C语言 返回指针的函数
  20. Javascript中==和===的区别

热门文章

  1. 60,000毫秒内对Linux的性能诊断效的方法
  2. DDD~基础设施层~续
  3. DDD~Unity在DDD中的使用
  4. EF架构~为分组添加位运算聚合方法
  5. 编写一个简单的C++程序
  6. hadoop本地库与系统版本不一致引起的错误解决方法
  7. 【WP 8.1开发】一键锁屏
  8. 深入理解javascript作用域系列第三篇——声明提升(hoisting)
  9. HTML学习目录
  10. CSS层叠