如何在动态创建的TCompressionStream的OnProgress中使用另一个Form中的TProgressBar?(50分)

  • 主题发起人 主题发起人 Ayong
  • 开始时间 开始时间
A

Ayong

Unregistered / Unconfirmed
GUEST, unregistred user!
我的目的就是:把压缩的过程用进度条的方式显示出来。
实现的方式是:在一Form中只有一个TProgressBar和TLabel,用TCompressionStream
进行图像(或文件)的压缩时显示这个Form,同时给TProgressBar.Position属性赋值
以显示当前的进度。

请各位大虾赐教!!


 
每压缩完一个文件,调用一次stepit
 
不明白你的意思!我要的是反映压缩的过程。还是把代码列出来:

//压缩过程
procedure TMainForm.FileCompress(const CompFileName: String; var dstStream: TMemoryStream; const CompressionLevel: TCompressionLevel);
var
msY : TMemoryStream;
zComp:TCompressionStream;
Count:Integer;
begin
msY:=TMemoryStream.Create;
zComp:=TCompressionStream.Create(CompressionLevel, DstStream);
zComp.OnProgress :=MyActive;
try
msY.LoadFromFile(CompFileName);
Count:=msY.Size;
//存入文件的原始大小
DataModule1.Table1.findField('Bytes').value:=Count;
msY.SaveToStream(zComp); //压缩文件到dststream中

finally
msY.Free;
zComp.Free;
end;
end;

//MyActive
procedure TMainForm.MyActive(Sender: TObject);
begin
if Sender is TCompressionStream then
begin
with Sender as TCompressionStream do begin
ProgressBarForm.ProgressBar1.Max :=Size;
ProgressBarForm.ProgressBar1.Position :=Position;
end;
end;
end;
编译时能通过!
 
怎么没人响应啊!大家给点参考意见啊!!
 
请问TCompressionStream这个类在哪里?
 
后退
顶部