Скопировать файлы с диалогом анимации
Сначала в разделе uses объявляем модуль ShellAPI
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, ShellAPI;
|
Затем следующим образом обрабатываем нажатие кнопки:
procedure TForm1.Button1Click(Sender: TObject);
var
Fo : TSHFileOpStruct;
buffer : array [0..4096] of char;
p : pchar;
begin
FillChar(Buffer, sizeof(Buffer), #0);
p := @buffer;
//Начали подключение файлов, предназначенных для копирования
p := StrECopy(p, 'C:\first.rar') + 1;
p := StrECopy(p, 'C:\second.rar') + 1;
p := StrECopy(p, 'C:\third.rar') + 1;
p := StrECopy(p, 'C:\5.rar') + 1;
p := StrECopy(p, 'C:\6.rar') + 1;
p := StrECopy(p, 'C:\7.rar') + 1;
FillChar(Fo, sizeof(Fo), #0);
Fo.Wnd := Handle;
Fo.wFunc := FO_COPY; //Действие
Fo.pFrom := @Buffer; //Источник
Fo.pTo := 'c:\1\'; //Назначение - показываем куда копируем
Fo.fFlags := 0;
if ((SHFileOperation(Fo) <> 0) or (Fo.fAnyOperationsAborted <> false)) then
ShowMessage('Cancelled')
end;
|
Заметим, что в качестве действия мы указали константу FO_COPY - это значит, что решено копировать файлы, помимо этого значения можно также указывать:
- FO_COPY
- FO_DELETE
- FO_MOVE
- FO_RENAME
|