![]() |
Ordner Kopiervorgang fertig? Oberfläche sperren.
Hallo!
Ich nutze zum kopieren von Ordnern folgende Funktion. Wie kann ich jetzt abchecken ob der kopiervorgang schon fertig ist? Und so lange z.B. die Oberfläche gesperrt lassen?
Delphi-Quellcode:
Gruß, freakfly
function f_CopyDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + #0); pTo := PChar(toDir) end; Result := (0 = ShFileOperation(fos)); end; |
Re: Ordner Kopiervorgang fertig? Oberfläche sperren.
Er sollte dann fertig sein, wenn die Funktion zurückkehrt.
|
Re: Ordner Kopiervorgang fertig? Oberfläche sperren.
Zitat:
Beispiel: (vereinfacht)
Delphi-Quellcode:
Im Fall 'paste', also Einfügen über das IcontextMenü, bekommt CHeck den Wert S_OK und der Delphi-Code wird weiter abgearbeitet. Erst nachdem ich viel weiter unten im Code bin poppt z.B. die MessageBox vom Windows auf und fragt mich ob ich überschreiben möchte oder nicht.
case Com of
MCpaste: Command.lpVerb := MakeIntResource('paste'); MCcopy: Command.lpVerb := MakeIntResource('copy'); MCcut: Command.lpVerb := MakeIntResource('cut'); end; if Command.lpVerb <> nil then begin Check := PConMenu.InvokeCommand(Command); if Check = S_OK then begin if (Com = MCdelete) then Self.ClearSelectedItems; if (Com = MCpaste) then if (FileCount > 0) and (GetFileCountFromFullPIDL(FCurRootPIDL) > FileCount) then Self.InsertTransferList; //HIER keine Änderung end else OleCheck(Check); Wie soll man da vernünftig den Vorgang behandeln?? Hat jemand Ideen? Grüße Sebastian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 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