为什么在安卓上运行时,我的Delphi TCanvas.DrawLine没有显示出来?

4

我有一个非常简单的FireMonkey应用程序,只有一个表单和在OnPaint事件中的以下代码。当我使用Windows目标运行它时,我会看到一条红线和一个红正方形。但是,当我在我的Android Nexus 7上运行它时,只有正方形出现。我一定做了什么傻事,但可能是什么呢?

感谢您的帮助。

procedure TForm2.FormPaint(Sender: TObject; Canvas: TCanvas;
  const ARect: TRectF);
begin
    Canvas.Stroke.Color := claRed;
    Canvas.Fill.Color := claRed;

    Canvas.Stroke.Thickness := 3;

    Canvas.DrawLine( PointF( 0, 0 ), PointF( 200, 200 ), 1.0 );

    Canvas.FillRect( RectF( 300, 300, 500, 500 ), 0.0, 0.0, [], 1.0  );
end;

只是出于兴趣,你是否也尝试过StrokeThickness属性,就像文档http://docwiki.embarcadero.com/Libraries/XE5/en/FMX.Graphics.TCanvas.StrokeThickness中所述的那样,而不是当前使用的`Stroke.Thickness`? - blong
我在这里没有访问源代码,因此它们实际上可能是预期的同一个,但我们永远不知道,所以最好再次检查。或者至少检查一下...如果它们的行为不同,请务必提交质量控制报告。 - blong
@blong:我已经尝试了各种不同的“Canvas.StrokeThickness”值,以及将其替换为“Canvas.Stroke.Thickness”。但输出结果始终只是一个红色正方形。 - Brian Frost
这个错误报告与此事有关吗?http://qc.embarcadero.com/wc/qcmain.aspx?d=119515 - blong
1个回答

9

我发现在Android下,Canvas.Stroke.Kind被初始化为bkNone(第0个序数),因此没有输出。

在获得输出之前,您需要包括Canvas.Stroke.Kind := TBrushKind.bkSolid


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接