如何使用TZCompressionStream调整压缩级别?

时间:2013-10-31 18:10:26

标签: delphi delphi-xe5

当我用:

创建TZCompressionStream对象时
var
  cs: TZCompressionStream; 
  dest: TStream;
  level: TZCompressionLevel;
...
  cs := TZCompressionStream.Create(level, dest);

我收到此编译器错误:

  

E2250没有可以使用这些参数调用的“创建”的重载版本

但我的代码是根据构造函数声明:

Create(compressionLevel: TZCompressionLevel; dest: TStream); overload; 

当我使用XE时,一切都很好。但是现在XE5出现了这个错误。为什么呢?

更新

  • 工作代码:cs := TZCompressionStream.Create(dest);
  • Faliing代码:cs := TZCompressionStream.Create(clMax, dest);

我也试图改变参数的顺序,这是不成功的。

1 个答案:

答案 0 :(得分:3)

我假设您的代码与编辑中所述的相同:

cs:=TZCompressionStream.Create(clMax, dest);

明显的解释是clMax不是你想象的那样。可能还有另一个单元定义clMax,该单元出现在您的使用列表中的ZLib之后。通过以下任一方式解决问题:

  • 完全限定枚举值:ZLib.clMax或
  • 更改使用顺序,以便ZLib出现在定义其他clMax的单元之后。