mainunit.pas

来自「Delphi7编程80例(完全版)」· PAS 代码 · 共 127 行

PAS
127
字号
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl, ShellAPI;

type
  TMainForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  MainForm: TMainForm;

implementation

{$R *.DFM}

procedure TMainForm.Button1Click(Sender: TObject);
var
  yDir: String;
begin
  yDir:= '';
  if SelectDirectory(yDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
    Edit1.Text:= yDir;
end;

procedure TMainForm.Button2Click(Sender: TObject);
var
  mdDir: String;
begin
  mdDir:= '';
  if SelectDirectory(mdDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
    Edit2.Text:= mdDir;
end;

procedure TMainForm.Button3Click(Sender: TObject);
var
  OPS: TSHFileOpStruct;
  FromBuf, ToBuf: Array[0..128]of Char;
begin
  FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
  FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf
  StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
  StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录
  with OPS do
    begin
      Wnd:= Handle;
      wFunc:= FO_COPY; //进行复制
      pFrom:= @FromBuf;
      PTo:= @ToBuf;
      fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
      fAnyOperationsAborted:= False;
      hNameMappings:= nil;
      lpszProgressTitle:= nil;
    end;
  if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '复制成功!', '复制信息', MB_OK+ MB_ICONINFORMATION);

end;

procedure TMainForm.Button4Click(Sender: TObject);
var
  OPS: TSHFileOpStruct;
  FromBuf: Array[0..128]of Char;
begin
  FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
  StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
  with OPS do
     begin
       Wnd:= Handle;
       wFunc:= FO_DELETE; //进行删除
       pFrom:= @FromBuf;
       pTo:= nil;
       fFlags:= FOF_NOCONFIRMATION;
       lpszProgressTitle:= '正在删除';
     end;
  if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '删除成功!', '删除信息', MB_OK+ MB_ICONINFORMATION);
end;

procedure TMainForm.Button5Click(Sender: TObject);
var
  OPS: TSHFileOpStruct;
  FromBuf, ToBuf: Array[0..128]of Char;
begin
  FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
  FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf
  StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
  StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录
  with OPS do
    begin
      Wnd:= Handle;
      wFunc:= FO_MOVE;  //进行移动
      pFrom:= @FromBuf;
      PTo:= @ToBuf;
      fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
      fAnyOperationsAborted:= False;
      hNameMappings:= nil;
      lpszProgressTitle:= '正在移动';
    end;
  if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '移动成功!', '移动信息', MB_OK+ MB_ICONINFORMATION);

end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?