AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SHFileoperatio-Ärger

Ein Thema von Mattze · begonnen am 23. Jul 2013 · letzter Beitrag vom 1. Aug 2013
Antwort Antwort
Seite 2 von 3     12 3      
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#11

AW: SHFileoperatio-Ärger

  Alt 24. Jul 2013, 12:41
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.)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: SHFileoperatio-Ärger

  Alt 24. Jul 2013, 13:42
Z. Bsp. möchte ich gerne fertige Threads auch rauslöschen.
Bei solchen Arrays müsste ich da umspeichern usw.
Dir ist aber schon klar, dass TList intern ein array of Pointer nutzt?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#13

AW: SHFileoperatio-Ärger

  Alt 24. Jul 2013, 14:44
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
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#14

AW: SHFileoperatio-Ärger

  Alt 25. Jul 2013, 22:55
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
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#15

AW: SHFileoperatio-Ärger

  Alt 26. Jul 2013, 06:29
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
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#16

AW: SHFileoperatio-Ärger

  Alt 27. Jul 2013, 14:48
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
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: SHFileoperatio-Ärger

  Alt 27. Jul 2013, 16:57
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.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#18

AW: SHFileoperatio-Ärger

  Alt 27. Jul 2013, 18:07
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
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#19

AW: SHFileoperatio-Ärger

  Alt 28. Jul 2013, 11:01
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:
      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;
Die Frage gilt für D7 prof.

Gruß
Mattze
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
678 Beiträge
 
FreePascal / Lazarus
 
#20

AW: SHFileoperatio-Ärger

  Alt 31. Jul 2013, 12:51
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06: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