procedure TForm1.Play;
var
  Bmp: TBitmap;
  pData: pChar; 
begin
  bmp:=TBitmap.Create;
  bmp:=image1.Picture.Bitmap;end; 请问如何把上面的BMP变量的图形数据 存到 pChar变量类型pData的变量中去?好头疼,弄了几天没有结果,郁闷。 还有bmp变量的缓冲区大小怎么获得,是简单的bmp.Width*bmp.Height吗? 请高手指点!!深表感谢

解决方案 »

  1.   

    var
      ms: TMemoryStream;
      pData: pChar;
    begin
      ms := TMemoryStream.Create;
      image1.Picture.Bitmap.SaveToStream(ms);
      pData := ms.Memory;
    end;ms.Size是缓冲区大小,如果ms.Free掉了,那么这个缓冲区也就没了,所以你可以等到图像数据用完了后在释放ms
      

  2.   

    谢谢 lake_cx的热心答复,我先试试,同时也希望大家都来看看,有没有其他的方法吗?都可以共同探讨一下。
      

  3.   

    2楼的方法是对的,不过一般情况还是不需要用这个来存吧,用pointer更通用些,pchar一般是需要做内存逐位操作时才需要用到。