So. Ich habe das jetzt mal eingebaut noch ohne Threads nur zum Testen. Leider bin ich da auf ein paar Probleme gestossen.
Erst mal habe ich den von dir gepostet Code in eine
Unit gesteckt und entsprechend erweitert. Du findest sie im Anhang.
Dann habe ich versucht den Code anzuwenden. Habe da aber wohl noch ein paar Verständnisschwierigkeiten.
Delphi-Quellcode:
procedure TForm1.btnOKClick(Sender: TObject);
var
i: Integer;
Filename: string;
ProgressAdapter: TStreamProgressAdapter;
FileStream: TFileStream;
begin
for i := 0 to lvFiles.Items.Count - 1 do
begin
Filename := lvFiles.Items.Item[i].Caption;
if lvFiles.Items.Item[i].SubItems[0] = 'unverschlüsselt' then
begin
FileStream := TFileStream.Create(Filename, fmOpenReadWrite);
try
ProgressAdapter := TStreamProgressAdapter.Create(FileStream);
try
Encrypt(FileStream, edtPW1.Text, TCipher_Rijndael); // 156
lvFiles.Items.Item[i].SubItems[0] := FloatToStr(ProgressAdapter.Progress);
finally
{???}
end;
finally
FreeAndNil(FileStream);
end;
end;
end;
end;
Frage: Kann es so überhaupt funktionieren? Weil wenn ich in der Schleife den ProgressAdapter gleich wieder freigebe, dann war es das ja gewesen, deswegen die drei Dedektive (???) an dieser Stelle.
Probleme:
Zitat:
[Fehler] Unit1.pas(156): Undefinierter Bezeichner: 'TCipher_Rijndael'
Zitat:
[Fehler] Unit1.pas(156): Es gibt keine überladene Version von 'Encrypt', die man mit diesen Argumenten aufrufen kann