Delphi如何实现选中文件或文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi如何实现选中文件或文件夹相关的知识,希望对你有一定的参考价值。

13-954 加油!~ 呵呵,很久没见你有动静了!////////////////////楼主的意思其实是像迅雷下载完文件后,在"已下载"列表里对某个已下载的文件执行 右键->打开文件夹 一样的效果,也即直接打开文件所在的目录,并使文件呈蓝色的选定状态,很多软件都能实现这种功能,但相关资料貌似并不多,下边来我来说说这招武林上不外传的玄冥神掌(自吹自擂),揭开它的神效,其实我所知道的有两种方法能实现,先说第一种最简单的,就是用资源管理器命令开关,如下代码:uses Shellapi; //以便使用ShellExecute function OpenAndSetFileSelected(const aFullExename: String): Boolean;
begin
Result:= FileExists(aFullExename);
if Result then
ShellExecute(0, \'open\', \'explorer.exe \', PChar(\'/select, \'+aFullExename),nil,SW_NORMAL);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
OpenAndSetFileSelected(\'C:\\WINDOWS\\regedit.exe\');
end;/////////////////////////////////可以在开始菜单->运行 里试试下边的命令,效果一样的explorer /select,c:\\windows\\regedit.exe顺便,把其它的开关也一并列出来吧更多信息syntaxEXPLORER.EXE [ /n ] [ /e ] [,/ root,<object> ] [ [,/ select ],< sub object...syntax
EXPLORER.EXE [ /n ] [ /e ] [,/ root,<object> ] [ [,/ select ],< sub object > ]
explorer 命令开关
/n: Opens a new window in single-paned (My Computer) view for each item
selected, even if the new window duplicates a window that is
already open./e: Uses Windows Explorer view. Windows Explorer view is most similar
to File Manager in Windows version 3.x. Note that the default view
is Open view./root,<object>: Specifies the root level of the specified view. The
default is to use the normal namespace root (the
desktop). Whatever is specified is the root for the
display./select,<sub object>: Specifies the folder to receive the initial
focus. If "/select" is used, the parent folder
is opened and the specified object is selected.
若要 to open Windows Explorer view to only objects explore on \\\\<server name >,use following syntax:
Explorer/e,/ 根,\\\\ < 服务器名 >
若要查看在 C:\\WINDOWS\\System32 文件夹并选择 CALC.EXE,使用以下语法:
explorer /select,c:\\windows\\system32\\calc.exe
例子:(可以将下边的命令复制到"运行"里回车试试)打开 c:\\windows 目录并选定 explorer.exe 文件
explorer.exe /select,"c:\\windows\\explorer.exe"
explorer.exe /n,/select,"c:\\windows\\explorer.exe" 加上 /n, 表示不管当前是否有已打开的c:\\windows目录,都会打开一个新的窗口explorer.exe /n,/e,/select,"c:\\windows\\explorer.exe" 加上 /e, 表示展开左边的目录树
参考技术A 选中文件夹,这个难度有点大的。如果是选中文件可以用OpenDialog1控件的。

jquery 文件树高亮选中

【中文标题】jquery 文件树高亮选中【英文标题】:jquery file tree highlight selected 【发布时间】:2015-07-06 17:39:41 【问题描述】:

我正在实现一个 jQueryFileTree (http://www.abeautifulsite.net/jquery-file-tree/) 作为文件浏览器,并希望用户单击的每个文件或目录都保持突出显示。我知道这可以使用简单的 JavaScript 或 CSS 来完成,但我对源代码的理解不够深入,无法知道如何或在何处实现突出显示。谁能指出我正确的方向?

【问题讨论】:

【参考方案1】:

好吧,您可以使用click 处理程序捕获一次点击,并使用addClass 添加一个类。

$('.thing-i-will-click-on').click(function() 
  $(this).addClass('selected');
);

您也可以使用类似的方法删除一个类。

$('.selected').removeClass('selected');

结合这两件事应该会给你想要的结果。

【讨论】:

对。但是如果你熟悉 jquery filetree 源代码,不清楚在哪里添加点击函数或'selected'类 @Eroth 您没有将其添加到 FileTree 源中。您可以在自己的代码中运行它。【参考方案2】:

所以经过一番修改后,我让它工作了!

首先你必须进入 jqueryFileTree.js 并从这里修改第 80 行:

h($(this).attr('rel'));

到:

h($(this));

这将返回被点击的对象而不是文件名。要在 .fileTree 的定义中获取函数(文件)中的文件名,您必须使用:

file.attr('rel');

现在您有了对象,您可以在函数(文件)中使用它来突出显示您的代码。 (选择的是我创建的改变背景颜色的 CSS 类)

$(".selected").removeClass('selected');
file.addClass('selected');

【讨论】:

【参考方案3】:
$('#your_filelist_id').fileTree(
  root: '/',
  script: '/connectors/jqueryFileTree.php'
, function(file) 
  var flist = $('#your_filelist_id a[rel="' + file + '"]');
  if(flist.hasClass('selected')) 
    flist.removeClass('selected');
  
  else 
    flist.addClass('selected');
  
);

【讨论】:

以上是关于Delphi如何实现选中文件或文件夹的主要内容,如果未能解决你的问题,请参考以下文章

delphi中如何实现checkbox的多选

DELPHI 如何获得 Webbrowser 浏览文件夹 选中的文件路径

delphi 在用了SelectDirectory函数操作文件夹以后如何删除被选中的文件夹?

[delphi编程]如何实现监视指定文件夹的文件操作

delphi如何能判断网络通不通?

delphi7的dbgrid选中一行双击后,弹出新窗口,并将dbgrid选中行的值传给新窗口?