unit1.pas

来自「关于利用DELPHI来进行企业级方案解决的著作的附书源码」· PAS 代码 · 共 67 行

PAS
67
字号
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  protected
    procedure CreateParams(var Params:TCreateParams);override;
    procedure WMDropFiles(var Message:TWMDropFiles);message WM_DropFiles;
  end;

var
  Form1: TForm1;

implementation


{$R *.DFM}
//重载CreateParams方法
procedure TForm1.CreateParams(var Params:TCreateParams);
begin

  inherited CreateParams(Params);
  Params.ExStyle:=Params.ExStyle or WS_EX_ACCEPTFILES;
end;

//响应WM_DROPFILES消息
procedure TForm1.WMDropFiles(var Message:TWMDropFiles);
var
  FNumFiles,i,BufSize:Integer;
  FFilePath:array of char;
  FFileName:string;
begin
  //取得文件个数
  FNumFiles:=DragQueryFile(Message.Drop,$FFFFFFFF,nil,0);
  //处理各个文件
  for  i:=0  to FNumFiles-1 do
  begin
    //获得存放文件名buffer的大小
    BufSize:=DragQueryFile(Message.Drop,i,nil,0);
    //获得文件名。文件名是以0结尾的字符串,包含路径。
    SetLength(FFilePath,BufSize+1);
    DragQueryFile(Message.Drop,i,PChar(FFilePath),BufSize+1);
    //将文件名加入到listbox1中
    listbox1.Items.Add(PChar(FFilePath));
  end;
  DragFinish(Message.drop);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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