关于ShellListView和ShellTreeView的几个问题(300分)

  • 主题发起人 主题发起人 bdz
  • 开始时间 开始时间
B

bdz

Unregistered / Unconfirmed
GUEST, unregistred user!
1:ShellTreeView中如何定位?比如定位于c:/winnt、system32,不要告诉我用root属性,
那样无法向上了。
2:如何在ShellListView中过滤掉我不想显示的文件?
3:如何返回ShellListView或ShellTreeView中选中项目的完整路径?(是文件的路径)
 
判断Caption(TEXT)
 
3问
提示: ShellTreeView1.SelectedFolder.RelativeID 为 pitemidlist
再通过SHELLAPI函数SHGETPATHFROMIDLIST()可得到 path.
另外
想问有哪位高手知道如何使ShellListView的缺省的鼠标双击事件动作无效,并可重新
定义;
 
3、
procedure TForm1.ShellListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
pathname:string;
begin
if change <> ctText then exit;
pathname := ShellTreeView1.Folders[ShellTreeView1.Selected.index].PathName;
end;

1、2好象直接用控件无法完成,可能要分析源码自己改写一个
 
3。左轻侯 说的是对的
1。挨个判断 pathname 和 你需要定位的 path
2。OnAddFolder 事件里面过滤
4。去掉很简单,设 AutoNavigate 为 false;
 
DBLClick 重新定义可以在 OnDBLClick 中做,
但还是改源码 override procedure DBLClick 比较好

1。ShellTreeView,ShellListView 有 bug, 原因我还没有找到
2。无法支持其它语言
3。速度太慢,尤其是 autorefresh,不要吧,修改又没法反映在操作系统中,
4。建议你改一改源码,去掉不必要的东西

我改了一下,去掉了很多东西,autorefresh 去掉了,右键菜单去掉了
对 item 的操作实际上可以直接
用 SHFileOperation 或者直接 DoContextMenuVerb 来实现,要好一些了。

实际上去掉一些不必要的东东后,TShellTreeView 可以装在 D5 上没问题
 
to 左轻侯 ,940801 :
3.不知道你们试过没有,shelllistview很难使用。
▲select 不同文件时,change 的值都是state.
▲用shelllistview1.select1.caption 得到的值是空值(此时,有文件处于选中装态)

 
我想请教一下,怎样用shelllistview实现oncolumnclick的时候排序的功能
shelllistview只有oncolumnclick事件,没有oncompare,不像listview
而且两个在column上都没有像资源浏览器上的那个小箭头
 
如果有多个选中项,如何提取!
 
to eMetal
TShellListView.AutoNavigate设为false;
把autocontextmenu设成false可以屏蔽右键菜单。
 
to bocai
我和你遇到了同样问题,我在source中没找到shelllistview的源代码,tnn的。
 
procedure TEditForm.ShellListViewAddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
begin
AFolder.ExecuteDefault;
CanAdd:=True;
end;

害死我了。nnd!
 
我也发现了一个问题:ShellTreeView的显示的根路径总是Root属性设置路径的父路径,不知道是我的问题,还是这个控件有Bug
 
D7的这几个控件也没有什么改进:(
 
如何更改 ShellTreeView内 item 的右键弹出菜单?
 
DBLClick 重新定义可以在 OnDBLClick 中做,
但还是改源码 override procedure DBLClick 比较好


我也正为这个问题发烦
我一直没找到它的源代码.
 
后退
顶部