- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我尝试运行以下简单代码序列时,收到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
的流以供以后处理...我做错了什么?
最佳答案
TStream class是一个抽象类,是所有流的基础。
TStream is the base class type for stream objects that can read from or write to various kinds of storage media, such as disk files, dynamic memory, and so on.
Use specialized stream objects to read from, write to, or copy information stored in a particular medium.
您可能想使用TMemoryStream或TFileStream ,顾名思义,它将流内容存储在内存或系统文件中。
procedure TForm1.Button1Click(Sender: TObject);
var
ImageStream: TMemoryStream;
begin
ImageStream := TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(ImageStream);
...
finally
ImageStream.Free;
end;
end;
关于delphi - 为什么我在使用 TStream 类时收到 "Abstract Error"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14651780/
要移动 TStream 类中的“当前字节”指针,我们可以使用属性 Position(例如 MyStream.Position := 0)或使用 Seek 方法(例如 MyStream.Seek(0,
TStream类包含许多 WriteData 的重载其形式如下: function WriteData(const Buffer: Int32; Count: Longint): Longint; o
我正在尝试将字符串转换为 TStream。下面的代码在 CopyFrom 行上给出了“抽象错误”消息。我在这里遇到了困难,有什么办法可以解决这个问题吗? procedure StringToStrea
通过 Indy 发送 TMemoryStream 的最佳方式是什么? 目前我正在尝试: procedure TClientForm.IdTCPClient1Connected(Sender: TObj
这是从 Apache Edgent Documentation 中获取的代码 我不明白元组到底是什么。代码如下: public static void main(String[] args) thro
我正在从流中读取组件,并且希望能够指定 Owner 属性。 var TComponent : comp; stream.Seek(0, soFromBeginning); comp :=
我正在使用 Delphi 7 并使用 StringList,以 TStream 作为对象。 我的测试项目有一个列表框、一个备忘录和 2 个按钮(添加和删除)。 这是我到目前为止得到的: var L
我的 MySQL 数据库上有一个存储过程,带有 2 个 Blob 类型的 OUT 参数 我想通过 UniDAC 的 SP 组件将它们的值作为 TStream 获取,我已尝试使用此代码进行测试: SP
当我尝试运行以下简单代码序列时,收到Abstract Error 错误消息: type TForm1 = class(TForm) Image1: TImage; Button1:
我编写了一个 DataSnap 服务器方法,它返回一个 TStream 对象来传输文件。客户端应用程序调用该方法并正常读取流。我的问题是,在 TStream 对象可供读取之前,方法调用需要一段时间才能
我正在 Delphi XE2 中使用 TCP/IP 协议(protocol)开发 DataSnap 项目,该项目需要将二进制数据流作为方法参数传递到服务器。我遇到的问题是流内容似乎有大约 32 KB
我需要从 Stream 中读取数据并将读取的缓冲区放入 OleVariant (VarArray) 变量中。 var MemoryStream : TMemoryStream; Data : OleV
我正在尝试使用 TBlobStream 方法将附件数据从 IMAP 服务器插入到 MySQL 数据库。 procedure TForm1.Button1Click(Sender: TObject);
我使用 Delphi XE2 构建了一个 DataSnap REST 服务器,并添加了一个通过 TStream 上传文件的服务器方法: function TServerMethods.updateUp
我正在使用 C++Builder,并且正在尝试慢慢地将代码迁移到使用 C++ 标准库而不是 Delphi VCL。 VCL 有一个基于 TStream 类的流架构,我正在改用 std::stream。
我有一个 Delphi 10.1 Berlin Datasnap 服务器,它无法返回大于大约 260.000 字节的数据包(通过 TStream)。 我按照 Delphi 的 \Object Pasc
我正在尝试编写一个 Delphi 控制台应用程序,为其标准输入创建一个 TStream,并为其标准输出创建另一个 TStream。 (它将由主机应用程序启动,其输入和输出重定向到管道,并将二进制数据传
我编写了一个 DataSnap 服务器方法,它返回一个 TStream 对象来传输文件。客户端应用程序调用该方法并读取流来下载文件。服务器方法非常简单: function TServerMethods
如下面代码的Test2所示,TStringList被转换为TStream,然后TStream又被转换回TStringList。然而,在 Delphi 7 中 Test2 给出的结果与 Test1 相同
对于 TStringStream,使用其 Bytes 属性的 bytes 与使用 TStream.Read 提取的 bytes 不同。如下图: 使用TStream.Read提取的字节代表正确的数据。
我是一名优秀的程序员,十分优秀!