如何用鼠标点击文件夹图标,Edit1.text:=“这个文件夹的全路径名"?(100分)

  • 主题发起人 主题发起人 lah998
  • 开始时间 开始时间
L

lah998

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用鼠标点击文件夹图标,Edit1.text:=“这个文件夹的全路径名"?
用OpenDialog只能调入文件名,不能调入文件夹名.
各位大侠,用什么方法可以用鼠标点击文件夹图标,把这个文件夹的全路径调入到Edit1.text中.
例如:用鼠标点击桌面上一个文件夹“aaa”,那么Edit1.text:=“c:/Windows/Desktop/aaa"
( 注:我要练习做一个压缩软件,用鼠标右键点击要压缩的文件夹,在右键菜单中选我的软件,压缩
这个文件夹下的所有文件,现在的难处就是如何取得这个文件夹的路径)
 
ExtractFilePath(OpenDialog1.Filename)+ExtractFileName(OpenDialog1.Filename)
 
lanbing1400, :我只点击文件夹,选文件名
 
lanbing1400, :我只点击文件夹,不点文件名
 
参考
.../Borland/Delphi5/Demos/Activex/Shellext
 
zw84611:是书还是帮助?帮助我看不懂,全是英文的
 
faint..,是Delphi带的例子呀。是里面的contmenu,记得要注册dll的
 
用DirectoryListBox,eidt1.text:=DirectoryListBox1.Directory;
 
zw84611,:我不知道怎么做?还是请你直接给我方法吧
 
faint, 我要有现成的,就贴出来了[:)]
参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=0130609
http://www.delphibbs.com/delphibbs/dispq.asp?lid=0157125
 
还没有解决!
 
用DirectoryListBox控件没问题啊!
是不想用吗?
 
lanbing1400,:这个控件在哪里?我还没用过,不会用,我去试试
 
win3.1下面
 
lanbing1400:哦,我找到了,有点问题,就是点击文件夹时如果文件夹下面有打开的文件夹
就不能显示点击这个文件夹的路径
 
可以啊,直接双击该文件夹确认后就可以拿到该文件夹路径的
 
lanbing1400:关键是要单击啊!
 
真麻烦!
在单击时强制执行双击可以吗?(我没试过,应该可以)
 
lanbing1400,:不可以,我试了,
 
你是要用户在我的电脑里面选文件夹还是在你的软件里面选啊?
要是前者:
//用鼠标右键点击要压缩的文件夹,在右键菜单中选我的软件,压缩
//文件夹下的所有文件,现在的难处就是如何取得这个文件夹的路径
只要你在注册表里面设置好了,当你的软件启动的时候,文件名(或文件夹名)就自动
以参数的形式传过来了啊:ParamStr(1)

设置注册表(下面说的"项目"就是注册表里面看起来像文件夹的东西):
在 KEY_CLASSES_ROOT/Folder/shell 下面新建一个项目,比如叫 DFW
在这个项的右边设置它的数据为 Open by DFW,这就是文件夹的弹出菜单中显示出来
的字符串。
然后在这个项目下新建一个项目 Command,在右边设置其数据为:
"c:/Delphi/Exe/DFW.exe" "%1"
这代表用户选中那个菜单选项的时候调用 c:/Delphi/Exe/DFW.exe 这个可执行文件
"%1" 表示将文件夹名字以参数形式传进去。
于是在你的程序启动的时候,就可以判断,如果 ParamCount > 0,说明有参数,其中
第一个参数就是 ParamStr(1),大概代码如下:
procedure TForm1.FormCreate(Sender: TObject);
begin
if ParamCount > 0 then
if DirectoryExists(ParamStr(1)) then
CompressDir(ParamStr(1))
// 压缩文件夹
end;
 
后退
顶部