(Delphi 7)画布上绘制的对象(以及画布本身)不会出现

时间:2015-07-04 20:18:05

标签: delphi canvas

我一直试图通过在位图上创建画布来显示矩形。它看起来像这样:

  TRoom = class
   private
     width, length, X1,X2,Y1,Y2, index: integer;
   public
     plane: TBitmap;
     procedure draw;
     procedure setparam;
     function getparam: integer;
  end;


procedure TRoom.draw;
begin
  plane:= TBitmap.create;
  plane.canvas.Pen.Color:= 1791767;
  plane.Canvas.pen.Width:= 3;
  plane.canvas.Rectangle(10,10,20,20);
end;

如标题所述,画布和矩形都不会出现。 我以前从未在Delphi中使用过画布,因此我认为它是一件相当简单的事情。

1 个答案:

答案 0 :(得分:2)

TBitmap是一个非可视类,表示光栅图像,2D像素数组。它本身永远不可见。您需要在屏幕上绘制它才能看到它。

您应该做的是创建一个可以绘制的视觉控件。例如TPaintBox。将其中一个放在表单上,​​并为其OnPaint事件添加处理程序。

procedure TForm1.PaintBox1Paint(Sender: TCanvas);
begin
  PaintBox1.Canvas.Pen.Color :=. 1791767;
  PaintBox1.Canvas.Pen.Width := 3;
  PaintBox1.Canvas.Rectangle(10, 10, 20, 20);
end;