AW: SHFileoperatio-Ärger
Hallo,
die Methode kenne ich natürlich auch. Finde ich hier aber nicht so schön bzw. aufwendiger. Z. Bsp. möchte ich gerne fertige Threads auch rauslöschen. Bei solchen Arrays müsste ich da umspeichern usw. Außerdem wäre da mehr Speicherplatz von Nöten, weil ich eben die ganze Klasse TMyThread im Array halte. Wenn ich eine TList habe, in der ich die Handles der Threads ablege, ist das Rauslöschen, Thread finden... alles kein Problem! Halte ich HIER für die günstigere Variante. Gruß Mattze @K-H: Und wie? (Außer mit den dynamischen Arrays von oben.) |
AW: SHFileoperatio-Ärger
Zitat:
|
AW: SHFileoperatio-Ärger
Hallo,
ist mir schon klar. Ich bin nur sehr faul und da kommt es mir entgegen, dass TList einen Haufen Dinge zur Verfügung stellt, die ich sonst alle selber coden müsste. Wer weiß, ob ich das richtig hinkriegen und wie lange das dauern würde. Im Grunde brauche ich ja nur eine Liste von 32-Integer. Soweit ich weiß, ist da TList die beste Variante. Gruß Mattze |
AW: SHFileoperatio-Ärger
Schon mal Microsoft's free RoboCopy getestet?
...es ist in den Windows-Versionen ab Vista, also auch in Windows Servern 2008 standardmäßig dabei und kann direkt aus der Kommandozeile heraus bzw. in der Powershell verwendet werden. http://de.wikipedia.org/wiki/Robocopy GUI: http://www.chip.de/downloads/Robocop..._28220207.html |
AW: SHFileoperatio-Ärger
Hallo,
Robocopy wäre sicherlich eine Alternative. Ich hätte das bloß gerne direkt als Programmierschnittstelle. Ein externes Programm aufzurufen, finde ich nicht soo toll. Also, ein Interface oder ähnliches für Delphi (7 prof) - das wär's! Gibt's sowas? Ich habe noch nix gefunden. Gruß Mattze |
AW: SHFileoperatio-Ärger
Hallo,
so, das scheint einigermaßen zu klappen. Mal sehen, wie das in der normalen Arbeit ist... Es bleibt aber ein Problem: Wie kriege ich das bei DnD hin? Per MouseHook? Abfangen und meine MultiThread-Lösung rein? Geht das überhaupt? Habe noch nie mit einem Hook "gespielt". War bisher einfach nicht nötig! Was meint Ihr? Wie geht's am besten? Gruß Mattze |
AW: SHFileoperatio-Ärger
Drag and Drop? Wie meinst du das?
Dort, wo du die Behandlung startest, kannst du das doch entsprechend umsetzen. Ich verstehe nicht wo du da die Notwendigkeit für einen Hook siehst. |
AW: SHFileoperatio-Ärger
Hallo,
ich sehe das auch nicht, aber ich weiß nicht, wie ich das sonst machen soll. Ich nutze eine Komponente (VirtualTreeview, genauer: VirtualExplorerEasyListview), die DnD offenbar über SHFileOperation selber bastelt. Und da ist das eben nicht mehr multithreaded. Die Frage ist also, wie ich das da abfange und, wenn ich in der Source rumfummle, ob ich da wirklich alles finde. Ich fände es günstiger, wenn ich es vollständig selber machen könnte, also das DnD vor der Komponente abfangen könnte. Vielleicht würde es ja auch ausreichen, dass Copywindow von Windows nicht modal zu machen. Irgendwo habe ich mal sowas gelesen, dass das der eigentliche Grund für die Probleme wäre. Gruß Mattze |
AW: SHFileoperatio-Ärger
Hallo,
ich überlege hin und her und kriege es nicht raus. Es geht nicht um DnD, sondern das davor! Ich erzeuge den Thread ohne Variable einfach mit "TMyThread.create(false)". Den Handle des Threads speichere ich mit in einer TList (TCList.add(Pointer(self.handle)) in TMyThread.create). Gibt Delphi den Thread nun bei Programmende selber frei (auch ohne Variable) oder muss ich das von Hand im OnClose (oder OnCloseQuery) des Hauptformulars machen?
Delphi-Quellcode:
Die Frage gilt für D7 prof.
for a:=0 to TCListe.Count-1 do begin
terminatethread(Cardinal(TCListe[a]),i); waitforsingleobject(Cardinal(TCListe[a]),300); closehandle(Cardinal(TCListe.items[a])) end; Gruß Mattze |
AW: SHFileoperatio-Ärger
Delphi gibt den Thread nur dann frei (nicht bei Programmende sondern Threadablaufende), wenn dieser FreeOnTerminate gesetzt hat.
Warum speicherst Du nicht die Thread-Objekte selber in der Liste? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz