Thema: DreamCatcher

Einzelnen Beitrag anzeigen

Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#26
  Alt 29. Jun 2003, 15:53
zu den threads:

ich hatte das problem bei meinem "AlphaCode Crypter" auch. Ich hab es folgendermaßen gelöst:

Deklaration des Threads
Delphi-Quellcode:
type
  TCryptThread = class(TThread)
  private
    Mode: Boolean;
    OverwriteFiles: Boolean;
    Source, Target: String;
    P1,P2: String;
  protected
    procedure Execute; override;
  public
    constructor Create(bMode, bOverwriteFiles: Boolean; strSource, strTarget, PW1, PW2: String);
end;
Implementierung
Delphi-Quellcode:
///////////////////

constructor TCryptThread.Create(bMode, bOverwriteFiles: Boolean; strSource, strTarget, PW1, PW2: String);
begin
  Mode := bMode;
  OverwriteFiles := bOverwriteFiles;
  Source := strSource;
  Target := strTarget;
  P1 := PW1;
  P2 := PW2;
  FreeOnTerminate := True;
  inherited Create(False);
end;

procedure TCryptThread.Execute;
begin
// Hier kommt der Code des Ver- und Entschlüsselns hin!
end;
Aufruf des Threads:
Delphi-Quellcode:
var
  CryptThread: TCryptThread
// .....
  CryptThread := TCryptThread.Create(rbEnCrypt.Checked,cbOverwriteTarget.Checked,edSource.Text,edTarget.Text,P1,P2);
  CryptThread.OnTerminate := ThreadDone;
Prozedur ThreadDone
Delphi-Quellcode:
procedure TfrmMain.ThreadDone(Sender: Tobject);
begin
  // Die ganzen Buttons wiede Enablen ;-)
end;
Thread Abbrechen
Delphi-Quellcode:
    TerminateThread(CryptThread.Handle,0);
    if Application.MessageBox('Der Vorgang wurde abgebrochen! Möchten Sie die unvollständige Zieldatei löschen?','Warnung',48+4) = IDYES then
    DeleteFile(edTarget.Text);
    ThreadDone(Sender);
    Exit;
Ich verwende TerminateThread, da mir auch net der Source der DCU vorliegt und die ganze Prozedur bei der Methode "Encrypt" sozugagen "anhält" und solange reagiert das Programm halt net.

ich hoffe, das hilft dir!

Super Programm übrigens

mfG
mirage228
David F.
  Mit Zitat antworten Zitat