拖放编程,关于判断是否接收拖放对象 一般是在OnDragOver里面判断,但考虑以下情况:我的接收对象是一个ListBox,我希望拖到ListBox上时(DragOver),都是显示可接收的(图标)。但具体放下去时,再根据不同的列表项,实际判断是否可接收,不可接收时,弹出个提示。这样的需求应该怎样做呢?因为OnDragDrop中是无参数返回是否可接收的。虽然可以抛异常,但是这个异常无法捕捉到(只能默认弹出),可以的话,最好有其它的方法。谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private { Private declarations } procedure DropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;procedure TFormCalcHash.FormCreate(Sender: TObject);beginDragAcceptFiles(Handle, True);end;procedure TFormCalcHash.DropFiles(var Msg: TWMDropFiles);varBuffer:array[0..MAX_PATH] of char;TheFile:string;Counter,i : Integer;begin//if WindowFromPoint(Mouse.CursorPos) = sGroupBox2.Handle then beginCounter := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, MAX_PATH); for i := 0 to Counter - 1 do begin DragQueryFile(Msg.Drop,i,@Buffer,SizeOf(Buffer)); TheFile := Copy(Trim(Buffer),0,SizeOf(Buffer)); if TheFile <> xxxxthen exit else Self.FileEdt.Text:=TheFile; //这里判断下, end;//end;DragFinish(Msg.Drop);Msg.Result := 0;end;在上面那里判断可以吗,比如说文件后缀名,或者文件大小 我的是一个Edit,楼主的是Listbox,楼主的意思是不是拖放进去 需要判断被拖放的文件是否符合规矩,如果是则添加,不是则跳过? delphi登录窗口的问题 从哪里能获得VCL的源码?谢谢! 这段代码 我怎么编绎不过去,请高手帮忙 谢谢 关于Tlabel和TPopupMenu控件关联的问题! 向网页post用户名密码后,怎么用IE打开经认证后的网页? 哪位高手有Delphi函数手册???最好是电子版的. 150分找一份邮件收发器的原码! SQL的插入语句 如何改变form的网格大小,就象vb那样调节网格大小? 有Delphi使用Corba的例子吗? 碰到奇怪的图片地址,下载始终不完整 我想买个1千左右的诺基亚手机 ,哪款好呀,求解!!!
private
{ Private declarations }
procedure DropFiles(var Msg: TWMDropFiles); message WM_DROPFILES;procedure TFormCalcHash.FormCreate(Sender: TObject);
begin
DragAcceptFiles(Handle, True);
end;procedure TFormCalcHash.DropFiles(var Msg: TWMDropFiles);
var
Buffer:array[0..MAX_PATH] of char;
TheFile:string;
Counter,i : Integer;
begin
//if WindowFromPoint(Mouse.CursorPos) = sGroupBox2.Handle then begin
Counter := DragQueryFile(Msg.Drop, $FFFFFFFF, nil, MAX_PATH);
for i := 0 to Counter - 1 do begin
DragQueryFile(Msg.Drop,i,@Buffer,SizeOf(Buffer));
TheFile := Copy(Trim(Buffer),0,SizeOf(Buffer));
if TheFile <> xxxxthen exit else
Self.FileEdt.Text:=TheFile; //这里判断下,
end;
//end;
DragFinish(Msg.Drop);
Msg.Result := 0;end;在上面那里判断可以吗,比如说文件后缀名,或者文件大小