使用TStream类时为什么会出现“抽象错误”?

时间:2013-02-01 17:28:36

标签: delphi

当我尝试运行以下简单代码序列时,我收到Abstract Error错误消息:

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

procedure TForm1.Button1Click(Sender: TObject);
var
  ImageStream: TStream;
begin
  ImageStream := TStream.Create;
  Image1.Picture.Bitmap.SaveToStream(ImageStream);
  ...
end;

我需要提取TBitmap的流以供日后处理......我做错了什么?

1 个答案:

答案 0 :(得分:5)

TStream class是一个抽象类,是所有流的基础。

  

TStream是流对象的基类类型,可以读取或写入各种存储介质,如磁盘文件,动态内存等。

     

使用专门的流对象来读取,写入或复制存储在特定介质中的信息。

您可能希望使用TMemoryStreamTFileStream,顾名思义,它将流内容存储在内存或系统文件中。

procedure TForm1.Button1Click(Sender: TObject);
var
  ImageStream: TMemoryStream;
begin
  ImageStream := TMemoryStream.Create;
  try
    Image1.Picture.Bitmap.SaveToStream(ImageStream);
    ...
  finally
    ImageStream.Free;
  end;
end;