Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Скопировать файлы с диалогом анимации

Сначала в разделе 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
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay