【问题标题】:Android: identifier not declaredAndroid:未声明标识符
【发布时间】:2014-10-23 13:04:54
【问题描述】:

这是我的代码:

procedure TForm1.PaintBox1Paint(Sender: TObject; Canvas: TCanvas); 
var
  i: Integer;
begin
  Randomize;
  Paintbox1.Canvas.Brush.Color:=clWhite;
  Paintbox1.Canvas.Rectangle(0,500,500,0);
  Paintbox1.Canvas.MoveTo(1,0);
  Paintbox1.Canvas.LineTo(1,500);
  Paintbox1.Canvas.Pixels[xx,yy]:=clBlack;
  ...
end;

当我尝试编译这段代码时,我得到:

标识符未声明 '画笔','颜色','矩形','MoveTo','LineTo','TextOut','像素'。

【问题讨论】:

    标签: android delphi delphi-xe7


    【解决方案1】:

    错误标识符未声明意味着您的 PaintBox1 对象不包含属性和方法 'Brush'、'Color'、'Rectangle'...

    发生这种情况是因为 Delphi 使用新的 FireMonkey (FMX) 框架进行 Android 开发,而不是 VCL。这两个框架中的类和控件具有完全不同的根源,虽然它们确实有一些相似之处,但它们的功能、属性和方法却大不相同。最重要的是,您不能使用与 VCL 进行 Windows 开发相同的代码。

    有关 FMX TCanvas 类的更多信息,请访问:

    http://docwiki.embarcadero.com/Libraries/XE7//en/FMX.Graphics.TCanvas_Properties http://docwiki.embarcadero.com/Libraries/XE7//en/FMX.Graphics.TCanvas_Methods

    如您所见,FMX TCanvas 不再具有“画笔”属性,而是“填充”和“描边”画笔。

      PaintBox1.Canvas.Fill.Color := TAlphaColorRec.White;
      PaintBox1.Canvas.FillRect(RectF(0, 0, 500, 500), 0, 0, AllCorners, 1);
    
      PaintBox1.Canvas.Stroke.Color := TAlphaColorRec.Blue;
      PaintBox1.Canvas.Stroke.Kind := TBrushKind.Solid;
      PaintBox1.Canvas.Stroke.Thickness := 1;
      PaintBox1.Canvas.Stroke.Join := TStrokeJoin.Miter;
      PaintBox1.Canvas.DrawLine(TPointF.Create(1, 0), TPointF.Create(1, 500), 1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      相关资源
      最近更新 更多