日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让窗体接受拖放, 并获取拖过来的文件信息 - 回复 海浪问 的问题

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让窗体接受拖放, 并获取拖过来的文件信息 - 回复 海浪问 的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題來源: http://www.cnblogs.com/del/archive/2009/01/20/1353117.html#1435746

原理分析:

這需要用到 ShellAPI 單元的兩個函數: DragAcceptFiles、DragQueryFile;

用 DragAcceptFiles(窗口句柄, True); 以讓窗口能夠接受拖放;

然后就等待 WM_DROPFILES 消息, 并用 DragQueryFile 函數處理消息參數, 從而獲取信息.

代碼文件:
unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;procedure FormCreate(Sender: TObject);protectedprocedure WMDropFiles(var Message: TWMDropFiles); message WM_DROPFILES;end;varForm1: TForm1;implementation{$R *.dfm}uses ShellAPI;procedure TForm1.FormCreate(Sender: TObject); beginDragAcceptFiles(Handle, True); end;procedure TForm1.WMDropFiles(var Message: TWMDropFiles); varp: array[0..255] of Char;i,count: Integer; begin{先獲取拖拽的文件總數}count := DragQueryFile(message.Drop, $FFFFFFFF, nil, 0);{分別獲取文件名}for i := 0 to count-1 dobeginDragQueryFile(message.Drop, i, p, SizeOf(p));Memo1.Lines.Add(p); {既然知道了文件名, 當然也可以隨手打開它}end; end;end.
窗體文件:
object Form1: TForm1Left = 0Top = 0Caption = 'Form1'ClientHeight = 154ClientWidth = 261Color = clBtnFaceFont.Charset = DEFAULT_CHARSETFont.Color = clWindowTextFont.Height = -11Font.Name = 'Tahoma'Font.Style = []OldCreateOrder = FalseOnCreate = FormCreatePixelsPerInch = 96TextHeight = 13object Memo1: TMemoLeft = 0Top = 0Width = 261Height = 129Align = alTopLines.Strings = ('Memo1')ScrollBars = ssBothTabOrder = 0end end

轉載于:https://www.cnblogs.com/del/archive/2009/01/20/1379130.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的让窗体接受拖放, 并获取拖过来的文件信息 - 回复 海浪问 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。