Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by negaH,
10. Aug 2003
Ähm, jetzt verstehe ich aber nicht was du eigentlich machst. Encrypt() muß den ProgressAdapter als Stream nutzen und keinen FileNamen.
procedure Encrypt(const Filename: String; ....);
var
Source,Dest: TStream;
begin
Source := TStreamProgressAdapter.Create(TFileStream.Create(FileName, fmOpenRead or fmShareDenyNone));
try
Dest := TFileStream.Create(TempFilename, fmCreate);
...
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by negaH,
10. Aug 2003
Einfacher, TProgressAdapter gibt den Stream den er kapselt selber frei. D.h. FileStream.Free ist in jedem Falle falsch.
ProgressAdapter := TStreamProgressAdapter.Create(TFileStream.Create(FileName, Mode));
try
ProgressAdapter.Read();
ProgressAdapter.Write();
finally
ProgressAdapter.Free;
end;
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by negaH,
10. Aug 2003
Du redest jetzt von obigem TStreamProgressAdapter ?
Diese Klasse muß natürlich erweitert werden. Im .DoProgress kann man über FStream.Size und FStream.Position das Verhältniss ermittelt werden.
In meinem eigene Source habe ich dies allerdings über eigene Variablen gemacht. Also im Contructor FStream.Size zwischen gespeichert. Im .Seek() .Read() und .Write() zähle ich eine eigene FPosition mit....