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

use*_*184 4 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;
Run Code Online (Sandbox Code Playgroud)

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

jac*_*ate 5

T流类是一个抽象类,所有的数据流的基础.

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;
Run Code Online (Sandbox Code Playgroud)

  • 忘了,像tstrings和TStringlist一样:-( (2认同)