请问大家内存画图究竟是怎样画的,比如我想用内存画的图显示到image上面,怎么写啊,那位大哥能不能给点详细的代码,我现在主要是想解决闪屏问题,就是直接在一张图上画点,由于数量多屏幕闪得厉害,那位大哥帮帮忙

解决方案 »

  1.   

    在内存画与直接画,效果相差不大,我一个朋友也是因为这个问题困扰了几个月,你可以检查一下你的界面上是否有lable控件等,这些会严重影响效果。我朋友去掉这些控件后,效果好多了。
      

  2.   

    http://www.skinEx.cn 可以找我
      

  3.   

    可以创建一个内存Bitmap来实现:var
      m_tmpBmp: TBitmap;
    begin
      m_tmpBmp:= TBitmap.Create;  try
        m_tmpBmp.Width := image1.Width;
        m_tmpBmp.Height:= Image1.Height;    //在这里画图吧
         m_tmpBmp.Canvas.Font.Color:= clRed;
        m_tmpBmp.Canvas.Pen.Color:= clRed;
        m_tmpBmp.Canvas.Brush.Color:= clBlack;
        m_tmpBmp.Canvas.Rectangle(0, 0, m_tmpBmp.Width, m_tmpBmp.height);    //绘图完毕,将内存中的copy到显示bitmap上
        Bitblt(Image1.Canvas.Handle, 0, 0, image1.Width, image1.Height,
               m_tmpBmp.Canvas.Handle, 0, 0, SRCCOPY);
        image1.Refresh;       //刷新Image1显示,这句是必须的
      finally
        FreeAndNil(m_tmpBmp);
      end;
    end;
      

  4.   

    楼上正解。要避免闪烁,需要buffer,画完后,一次贴出。
      

  5.   

    在代码编辑器中键入Canvas,然后按F1查看帮助
      

  6.   

    如果只是需要显示一些控件的话,建议使用Panel比较容易一些. 如果使用TImage,需要对TBitmap了解一下,这里包含了对图片的绘制方法. 这个可能对你有用: 
    http://download.csdn.net/source/197437