alle im den
DEC Klassen enthaltenen Methoden die länger dauern können, zb.
THash_XYZ.CalcStream(), .CalcFile()
TCipher_XYZ.Encode/DecodeStream/File
unterstützen einen Progress -> IDECProgress Interface. Du deklarierst in deinem TForm zb. sowas
Delphi-Quellcode:
type
TForm1 = class(TForm, IDECProgress)
procedure Process(const Min,Max,Pos: Int64); stdcall;
end;
und kannst du dein Application.ProcessMessages reinbauen. Übrgeben bekommst du Min,Max und Pos das sind die Größen und Datezeiger/Streamtzeiger.
Wenn du dem Anwender die Möglichkeit geben möchtest eine Aktion zu unterbrechen dann musst du
1.) ein Variable FAbort:Boolean in dein TForm einbauen
2.) deine Methode die alles macht per try except Block schützen und auf EAbort reagieren
3.) einen Button auf's TForm der FAbort auf TRUE setzt
4.) in deiner Methode .Process() bei FAbort = TRUE die Prozedure Abort aufrufen
Es ist also so das alle anderen deiner Tools das eventuell nicht unterstützen, aber
DEC tut es mit Sicherheit ermöglichen und das sehr einfach indem du nur eine Methode eines Interfaces implementierst.
Beim Aufruf einer der obigen
DEC Klassen Methoden übergibts du dann einfach als letzten Parameter Self.
http://www.michael-puff.de/Developer...agen_Reddmann/ neuste Version.
Gruß Hagen