一个ShellTreeView和一个ShellListView连接,实现对本地文件的访问
但是如果ShellListView的AutoRefresh为true的话,运行点击ShellListView
中的“我的电脑”,再双击其中一个硬盘盘符,就抛出EAccessViolation异常。只好将ShellListView的AutoRefresh设为false,然后再指定的操作后自行
ShellListView.Refresh 才能实现List中的刷新。不知是否有更好的解决方法。如果ShellTreeView的AutoRefresh为true,一开始访问TreeView中的节点,例如双击ShellTreeView中的“我的电脑”,再双击其中一个硬盘盘符, 等等 类似的操作
然后关闭程序,就会抛出EAccessViolation异常,程序使用正常,但是关闭时候抛出异常让人很不爽。将ShellTreeView的AutoRefresh设置为false,加入如下操作procedure TForm1.ShellTreeView1Click(Sender: TObject);
begin
if ShellTreeView1.SelectedFolder.IsFolder then
ShellTreeView1.Refresh(ShellTreeView1.Selected);
end;这时候能够实现单击ShellTreeView中item时候刷新点中的节点。不过如果单击
光盘之前的一个分区(硬盘)的图标,就会提示“请将磁盘插入XX:”
也就是刷新了光盘的item 如何才能解决这个问题。控件的AutoRefresh属性本来给予了我们很大的方便,但是却出现这么多问题。。
让本菜鸟迷惑不已,请求高手给于解决方法
但是如果ShellListView的AutoRefresh为true的话,运行点击ShellListView
中的“我的电脑”,再双击其中一个硬盘盘符,就抛出EAccessViolation异常。只好将ShellListView的AutoRefresh设为false,然后再指定的操作后自行
ShellListView.Refresh 才能实现List中的刷新。不知是否有更好的解决方法。如果ShellTreeView的AutoRefresh为true,一开始访问TreeView中的节点,例如双击ShellTreeView中的“我的电脑”,再双击其中一个硬盘盘符, 等等 类似的操作
然后关闭程序,就会抛出EAccessViolation异常,程序使用正常,但是关闭时候抛出异常让人很不爽。将ShellTreeView的AutoRefresh设置为false,加入如下操作procedure TForm1.ShellTreeView1Click(Sender: TObject);
begin
if ShellTreeView1.SelectedFolder.IsFolder then
ShellTreeView1.Refresh(ShellTreeView1.Selected);
end;这时候能够实现单击ShellTreeView中item时候刷新点中的节点。不过如果单击
光盘之前的一个分区(硬盘)的图标,就会提示“请将磁盘插入XX:”
也就是刷新了光盘的item 如何才能解决这个问题。控件的AutoRefresh属性本来给予了我们很大的方便,但是却出现这么多问题。。
让本菜鸟迷惑不已,请求高手给于解决方法
解决方案 »
- 我真的很急,关于保存图片。
- 关于stringlist的使用;大家看看我这段程序哪里有问题,给分20分
- 想打印页面中的几个edit和lable,该怎么做
- 为什么使用Olecontainer控件开了一个word,切换到另外一个word事例(本地运行一个word),再切换回来Olecontainer控件中的word,所有的操作就
- 如何判断鼠标按下时是点击了DBGrid中的标题栏还是数据行,请各位大哥帮帮忙!谢谢!
- 关于远程访问数据库的问题,本人在线等候100分
- 那位帮小妹解决这个问题啊?
- 1000分求救!!為會麼我的K7S5A2主板不能裝WIN2000 SERVER??非常急!!!!!!!!!!
- 接个项目做做!!
- 谁知道PARADOX数据库的BLOB字段生成的.MB数据文件怎样删除!!
- 很简单的语法问题,进来看看
- 新手上路:请问在SQLserver中创建表时,怎么判断表是否存在?
或者是连续刷了两个TTreeNode,用下面代码可以避免
单击光盘之前的一个分区(硬盘)的图标,就会提示“请将磁盘插入XX:”
的情况,不过遇到单击某个分区第一的文件夹的时候出错:无效的index,
所以硬是这样实现刷新:if ShellTreeView1.Selected.Index-1 >=0 then
ShellTreeView1.Refresh(ShellTreeView1.Items.Item[ShellTreeView1.Selected.Index-1]);
但是要兜这么大一个圈,实在不太懂。忘高手指点AutoRefresh属性的问题。谢