gpt4 book ai didi

delphi - delphi中的TStream警告

转载 作者:行者123 更新时间:2023-12-03 15:42:26 26 4
gpt4 key购买 nike

我有以下代码片段

 Procedure TFrm.Retrieve(mystring : string);
var
bs : TStream;
...
begin
...
bs:=nil;
//bs:= TStream.create;
try
bs := CreateBlobStream(FieldByName('Picture'), bmRead);
finally
bs.Free;
end;
...
end;

我在理解 bs 变量的初始化时遇到问题。

如果我不初始化它,我会收到一个明显的警告。

 Variable 'bs' might not have been initialized.

现在,如果我按照注释部分进行操作,即

 bs:= TStream.create;

我收到以下警告。

Constructing instance of 'TStream' containing abstract method 'TStream.Read'
Constructing instance of 'TStream' containing abstract method 'TStream.Write'

最后如果我使用它就完全正常了

 bs:=nil;

我将其分配给Nil是否正确?

任何意见表示赞赏。

最佳答案

TStream 是抽象的,因此您不应实例化它(调用抽象方法会导致运行时错误)。相反,您应该实例化一个非抽象后代。完成后,您应该释放该实例。

例如:

var
Stream: TStream;
begin
try
Stream := CreateBlobStream(FieldByName('Picture'), bmRead);
try
// ...
finally
Stream.Free;
end;
except
// handle exceptions
end;
end;

关于delphi - delphi中的TStream警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8342042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com