程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi拖放文件到窗體中並獲取文件路徑

Delphi拖放文件到窗體中並獲取文件路徑

編輯:Delphi

Delphi拖放打開文件,並把路徑顯示在窗口中。實現思路:當文件拖放至窗體中後,系統將向窗體發送WM_DRAPFILES事件,因此我們可以在WMDROPFILES過程中獲取文件總數及文件名。當程序啟動時,啟用文件拖放功能。當第二個參數True時,啟用文件拖放,如果為False則禁止文件拖放。完整代碼:

vIEw source print? 01 unit Unit1; 02 interface 03 uses 04   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 05   Dialogs, StdCtrls, ShellAPI; 06   07 type 08   TForm1 = class(TForm) 09     Memo1: TMemo; 10     procedure FormCreate(Sender: TObject); 11   private 12     // 當文件拖放至窗體中後,系統將向窗體發送WM_DRAPFILES事件, 13     // 因此我們可以在WMDROPFILES過程中獲取文件總數及文件名。 14     procedure WMDROPFILES(var Msg: TMessage);message WM_DROPFILES; 15   public 16     { Public declarations } 17   end; 18   19 var 20   Form1: TForm1; 21 implementation 22   23 {$R *.dfm} 24 procedure TForm1.FormCreate(Sender: TObject); 25 begin 26   // 當程序啟動時,啟用文件拖放功能。當第二個參數True時, 27   // 啟用文件拖放,如果為False則禁止文件拖放。 28   DragAcceptFiles(Handle, True); 29 end; 30   31 procedure TForm1.WMDROPFILES(var Msg: TMessage); 32 var 33   FilesCount: Integer// 文件總數 34   i: Integer; 35   FileName: array[0..255of Char; 36 begin 37   Memo1.Clear; 38   // 獲取文件總數 39   FilesCount := DragQueryFile(Msg.WParam, $FFFFFFFFnil0); 40   Memo1.Lines.Add('文件總數為:' + IntToStr(FilesCount)); 41   42   // 獲取文件名 43   for i := 0 to FilesCount - 1 do 44   begin 45     DragQueryFile(Msg.WParam, i, FileName, 256); 46     Memo1.Lines.Add(FileName) 47   end; 48     49   // 釋放 50   DragFinish(Msg.WParam); 51 end; 52 end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved