![]() |
Der Taskmanager zeigt mir 6 Threads an. Aber irgendwas mußt du falsch gemacht haben. Wie hast du denn den Code für den Thread erstellt? Mit der Vorlage von Delphi und dem TThread-Objekt oder hast du direkt auf die WinAPI zurückgegriffen?
Stell mal die Thread-Priorität auf tpIdle oder tpLow. das Problem hatte ich mit meinem Game of Life auch. Die Priorität tpNormal ist schon zu hoch, um das Hauptfenster reagieren zu lassen. |
@Luckie: dann weiß ich, was ich vergessen habe... :roll: Ich habe es mit einem TThread-Objekt (abgeleitet davon) gemacht.
Chris |
Neue Version
Liste der Anhänge anzeigen (Anzahl: 1)
Neue Version: DreamCatcher v0.53 So... habe noch einiges geändert und verkleinert. ChangeLog:
Über weitere Ideen, Verbesserungsvorschläge, Feedbacks usw. wäre ich sehr erfreut. Chris PS: Wenn jemand eine Lösung hat, warum ich große Dateien nicht codieren kann, bzw. das Programm dann nicht mehr reagiert, dann wäre ich ebenfalls sehr erfreut! |
Falls die Datei nicht funktioniert gibt es noch zwei Mirrors:
Download #1: ![]() Download #2: ![]() Chris |
DreamCatcher v0.6 DreamCatcher v0.6 ist nun fertig und kann heruntergeladen werden. Viel wurde nicht geändert, nur einige kleine Bugfixes. Große Dateien sollten nun auch funktionieren. Download-URL: ![]() Chris |
zu den threads:
ich hatte das problem bei meinem "AlphaCode Crypter" auch. Ich hab es folgendermaßen gelöst: Deklaration des Threads
Delphi-Quellcode:
Implementierung
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;
Delphi-Quellcode:
Aufruf des Threads:
///////////////////
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;
Delphi-Quellcode:
Prozedur ThreadDone
var
CryptThread: TCryptThread // ..... CryptThread := TCryptThread.Create(rbEnCrypt.Checked,cbOverwriteTarget.Checked,edSource.Text,edTarget.Text,P1,P2); CryptThread.OnTerminate := ThreadDone;
Delphi-Quellcode:
Thread Abbrechen
procedure TfrmMain.ThreadDone(Sender: Tobject);
begin // Die ganzen Buttons wiede Enablen ;-) end;
Delphi-Quellcode:
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.
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 hoffe, das hilft dir! Super Programm übrigens ;-) mfG mirage228 |
Hä? Wie jetzt? :wiejetzt:
Läuft doch nun wunderbar mit den Threads...?! Nichts hängt sich auf und die Progressbar funktioniert auch!? Chris |
Ups, hatte wohl vor der Version 0.6 auf posten gedrückt, naja, ist dann auch egal.
EDIT: Hab noch nen sehr merkwürdigen Fehler gefunden! Erstmal steht in der Titelleiste noch Version 0.5... Und jetzt kommts: Ich wähle eine Datei aus (Ca. 700MB), wähle die Optionen (also Zieldatei, Passphrase und so), klicke auf "Encrypt" und kriege sofort die Erfolgsmeldung "File Encrypted successufully". Aber die Datei ist net da... |
Zitat:
Aber was willst du mehr? Das ist die erste 100% sichere Verschlüsselung, denn was nicht da ist, kann man nicht entschlüsseln. :roll: |
Hm... das ist mir aber nun sehr suspekt... :(
Da muss ich mal gucken... Chris |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz