据我看至少有ShellTreeView1.SelectedFolder属性,仔细看看嘛
解决方案 »
- dbExpress的一个bug,无法用recordcount获得记录总数字,不支持表的别名,也不支持Exec ProcName的sql语句
- Printer打印问题,可否实现横排和竖排混合的打印?
- 如何禁止访问局域网,但SQL能访问?
- DBGridEh的显示更新问题
- 那位大侠将delphi和vc连起来使用过?
- rave5兼容问题求救!
- 用Delphi播放Flash的问题...
- 各位大虾!谁有呀,告诉我!
- Delphi高手请进 解决问题 送高分 再送分
- Kingron 请把你刚才回答的问题提供一些代码
- 我想要编写一个程序能够检测到当前系统下所有的进程
- 调用自动化服务器的后期捆绑如何实现???急,谢谢
procedure TForm1.Button1Click(Sender: TObject);
var
ShellFolder: TShellFolder;
begin
ShowMessage(ShellTreeView1.Selected.Text);
ShellFolder := ShellTreeView1.SelectedFolder;
ShowMessage(ShellFolder.DisplayName);
ShowMessage(ShellFolder.PathName);
end;
谢谢。但是,我最需要的是TShellListview中选中的文件或文件夹的目录和文件名。
它同样有SelectedFolder属性,你就可以知道其目录名和路径名了对计算立法局类毒素对计算旅客旅客从来第三类毒素立法局昆仑洒的经费拉萨
如果真的这么简单,那么我也不用上这来问了。
实际情况是,ShellListView1.Selected.Caption返回的一直是空字符串。而ShellListView1.Selected.SubItems倒是有相应的内容的。真的很奇怪。
请你自己试一试,好吗?
procedure TForm1.ShellListView1Change(Sender: TObject; Item: TListItem;
Change: TItemChange);
var
LVItem:TLVItem;
s:array[0..255] of char;
begin
FillChar(LVItem,SizeOf(LVItem),0);
LVItem.mask := LVIF_TEXT;
LVItem.cchTextMax := 255;
LVItem.pszText := @s; //奇怪,一调用这个API后ITEM.CAPTION就有值了,不知是不是TShellListView的Bug
ListView_GetItemText(ShellListView1.Handle,LVM_GETITEMTEXT,ShellListView1.ItemIndex,Integer(@LVItem));
Caption := LVItem.pszText; if Item <> nil then
Caption := caption +' |'+Item.Caption
else
Caption :=Caption +' |nil'end;
你用ShellListView1.SelectedFolder就可以得到了.
因为有中ViewStyle是vsReport,所以SubItem属性存储的就是这时要表现的信息
你提供的ListView_GetItemText很有用。我已经能够取得caption了。
补充说明,无需申明复杂的LVItem:TLVItem;
也是可以的,直接用简单变量填入到ListView_GetItemText也行。
另外,调用这个函数,必须 uses commctrl单元。但是,问题还是没有解决,如何得到文件所在的路径全名?
用ShellTreeView1.SelectedFolder?请大家再帮忙试一下吧。有些问题不试是不知道的,不能想当然。
比如,文件名想当然是caption,但实际是空的。
路径名想当然可能是SelectedFolder.PathName,但实际上呢 ^_^
用ShellTreeView1.SelectedFolder.Parent.DisplayName可以取出文件所在的路径全名.