uses shellapi;
private
{ Private declarations }
procedure DragFileProc1(var Message: TMessage);//拖放文件引用1 单元shellapi
procedure DragFileProc2(var Message: TMessage);//拖放文件引用1
procedure WMNCHitTest(var Msg:TWMNCHitTest);message WM_NCHITTEST; //点击标题栏响应事件
procedure TForm1.DragFileProc1(var Message: TMessage); //拖放文件引用1
var
FileNum: Word;
p: array[0..254] of char;
begin
if Message.Msg = WM_DropFiles then
begin
//Self.Edit1.Clear;
FileNum := DragQueryFile(Message.WParam, $FFFFFFFF, nil, 0);
// 取得拖放文件总数
for FileNum := 0 to FileNum - 1 do
begin
DragQueryFile(Message.WParam, FileNum, p, 255);
// 取得拖放文件名
//Self.MemoDrag.Lines.add(StrPas(p));
//对文件的处理
if (Pos('.jpg',StrPas(p))<>0) then begin
Edit1.text:= StrPas(p);
xianshi(StrPas(p));
end else Memo1.Lines.Add('提示:请拖入Jpg格式图片!') ;
end;
end
else // 其他消息,调用原来的处理程序
OLDWndProc1(Message);
end;
procedure TForm1.DragFileProc2(var Message: TMessage); //拖放文件引用2
var
FileNum: Word;
p: array[0..254] of char;
begin
if Message.Msg = WM_DropFiles then
begin
//Self.Edit1.Clear;
FileNum := DragQueryFile(Message.WParam, $FFFFFFFF, nil, 0);
// 取得拖放文件总数
for FileNum := 0 to FileNum - 1 do
begin
DragQueryFile(Message.WParam, FileNum, p, 255);
// 取得拖放文件名
//Self.MemoDrag.Lines.add(StrPas(p));
//对文件的处理
if (Pos('.zip',StrPas(p))<>0) or (Pos('.rar',StrPas(p))<>0) or (Pos('.7z',StrPas(p))<>0) then Edit2.text:= StrPas(p) else Memo1.Lines.Add('提示:请拖入Zip、Rar、7z格式文件!') ;
end;
end
else // 其他消息,调用原来的处理程序
OLDWndProc2(Message);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Self.edit1.Handle, true); //拖放文件引用1
DragAcceptFiles(Self.edit2.Handle, true); //拖放文件引用2
OLDWndProc1 := Self.edit1.WindowProc; //拖放文件引用1
Self.edit1.WindowProc := Self.DragFileProc1; //拖放文件引用1
OLDWndProc2 := Self.edit2.WindowProc; //拖放文件引用2
Self.edit2.WindowProc := Self.DragFileProc2; //拖放文件引用2
end;