一个Delphi7自带的Demo,类似于mspaint,位于Delphi7\Demos\Doc\Graphex目录下,代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
  Bitmap: TBitmap;
begin
  Bitmap := nil;
  try
    Bitmap := TBitmap.Create;
    Bitmap.Width := 200;
    Bitmap.Height := 200;
    Image.Picture.Graphic := Bitmap;
  finally
    Bitmap.Free;
  end;
end;
请问这段代码有什么作用?我使用TImage的也没有这样初始化啊

解决方案 »

  1.   

    这个在内存中创建一个TBitmap对象,设置其Width ,Height然后,赋值给Image.Picture.Graphic,之后,便可以在Image的Canvas中画点,线,等如果不在FormCreate创建一个Bitmap对象,这个程序就不会一运行,
    就有一个默认可以画图的200*200的区域了
      

  2.   

    >>我使用TImage的也没有这样初始化啊一般来说,普通的应用程序,不用创建Bitmap
    直接使用Image.Picture.LoadFromFile即可;简单的说,上面要创建一个Bitmap对象,是为了提供一个用于画图的地方,
      

  3.   

    这个,我通常是这样做的:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Image.Width := 200;
      Image.Height := 200;
      Image.Canvas.Brush.Color := ...;
      Image.Canvas.FillRect(Image.ClientRect);
      ...
    end;有区别么?
      

  4.   

    有区别么?
    ===============================================================
    没什么区别,你做的是对的,那不过是个demo,真正那样初始化是多次一举
      

  5.   

    请问:当Timage的Width和Height的值设置较大时,如10000,运行时会报内存不够,应如何设置才能不会内存报错。