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

(Delphi 7)在画布上绘制的对象(以及画布本身)不会出现,delphi,canvas,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; beg

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

  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中使用过画布,因此我希望它是一个非常简单的东西。

A
TBitmap
是一个非视觉类,表示光栅图像,一个二维像素阵列。它本身是看不见的。你需要把它画在屏幕上才能看到它

您应该做的是创建一个可视控件,以便绘制。例如,
tpainbox
。将其中一个添加到表单中,并为其
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;

您正在位图画布上绘制。那就是你的结局。现在,您可以在某些控制画布上渲染此位图以查看结果。您希望图像显示在何处?你有表格吗?@TLama我该怎么做?我不能使用我表格中的对象。我曾尝试创建一个图像画布,但这产生了类似的结果。每次在画布上绘制东西时,您都要创建一个新的
TBitmap
对象,该对象由
plane
引用。我猜您必须在创建
TRoom
对象时创建
plane
对象,然后重用它。