WindowsXP Delphi6Personalです。
ファイルやフォルダのコピーをあるサイトの見本の
下記の関数で行っていますが、
大きなファイルやフォルダのコピー中に停止するにはどうしたらいいのでしょうか。
察するにfAnyOperationsAborted:=False;にtrueを送るのではと思うのですが
どのようなコードで渡すのか解りません。
よろしくお願いします。
function TForm1.CopyRoutine(FolderName: string; Path: string):Boolean;
var
foStruct: TSHFileOpStruct;
begin
with foStruct do
begin
wnd:=0;
wFunc:=FO_COPY;
pFrom:=PChar(FolderName+#0); //コピーもと
pTo:=PChar(Path + #0); //コピー先
fFlags:= FOF_NOCONFIRMMKDIR or FOF_NOCONFIRMATION ;
fAnyOperationsAborted:=False;
hNameMappings:=nil;
lpszProgressTitle:=nil;
end;
Result := (SHFileOperation(foStruct) = 0);
end;
すみません。自己レスです。
lpszProgressTitle:=nil;
をコメントアウトしたら、
あの「コピー中」のダイアログが表示されるようになりました。
このダイアログの「キャンセル」ボタンでキャンセルできるので
コードで書く必要はないのですね。
お騒がせしました。
ツイート | ![]() |