首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FMX.Graphics.TCanvas.DrawEllipse不能在安卓系统上运行

FMX.Graphics.TCanvas.DrawEllipse不能在安卓系统上运行
EN

Stack Overflow用户
提问于 2019-03-23 21:45:10
回答 1查看 459关注 0票数 1

我正在用FireMonkey和Delphi制作简单的绘图应用程序。它真正做的就是绘制线条和椭圆。代码如下:

代码语言:javascript
复制
Image1.Bitmap.Canvas.BeginScene;
with Form1 do begin
for i := 0 to 360 do
  if (i mod 15)=0 then
  begin
    p1 := TPointF.Create(PX, PY);
    p2 := TPointF.Create(Round(PX+200*sin(i*pi/180)), Round(PY+200*cos(i*pi/180)));
    Image1.Bitmap.Canvas.DrawLine(p1, p2, 100);
  end;

for i := 0 to 200 do
  if (i mod 20)=0 then
  begin
    prst1 := TRectF.Create(PX+i,PY+i,PX-i,PY-i);
    Image1.Bitmap.Canvas.DrawEllipse(prst1, 100);
  end;
 Image1.Bitmap.Canvas.EndScene;
  end;

当我在Win32或Win64下编译这段代码时,它工作得很好。但当我试图编译它并在Android设备上运行时,只显示几行代码,省略号就不见了。有人知道为什么会这样吗?

提前感谢您的帮助!

EN

回答 1

Stack Overflow用户

发布于 2019-03-24 00:37:47

您可以在OnPaint事件处理程序中的Form.Canvas上绘制。下面是一个示例:

代码语言:javascript
复制
procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
  with Canvas do begin
    BeginUpdate;
    try
      Stroke.Kind := TBrushKind.Solid;
      Stroke.Thickness := 2.0;
      DrawEllipse(ARect,1);
      DrawLine(PointF(ARect.Left,ARect.Height / 2), PointF(ARect.right,ARect.Height / 2), 1);
      DrawLine(PointF(ARect.Left+(ARect.Width / 2),ARect.Height), PointF(ARect.Left+(ARect.Width / 2),0), 1);
    finally
      EndUpdate;
    end;
  end;
end;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55314349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档