ShellListView似乎只能默认的按名称排序,有什么办法能让它按文件大小之类的条件排序?
解决方案 »
- quickreport 自定义尺寸 打印被拉伸
- ▁▂▃▄▅▆高考没考好,放可用分5000分▆▅▄▃▂▁
- 怎样在edit中显示数据表中的信息
- 三层结构中应用服务器的分发问题,绝非老调重弹,请高手指点
- 简单问题,求解
- 幽灵技术联盟 论坛建成 欢迎各位来发帖!!!!www.gmember.com
- 如何使声卡发某一频率的声音!
- 请问有一组Tlabel,如何用数组表示?
- 有学号、题号、每一题的难度、区分度、答题反应时间(每个学生回答每道题的时间)等字段,如何建table才合适,并且可以计算出每一题的答对次数,如何进行编程,请赐教!最好有源代码。本人有急用!就要交毕业设计了!!1
- 小问题一个,来看看吧
- DBgrideh无法录入小数
- 程序设置代理服务器,下面的代码为什么不起作用?
2、最“偷懒”的方法直接用现在的组件,如RzShellList
3、不想用第三方组件,那再研究一下TShellListView类,AlphaSort方法
这个是ShellListView排序函数(在ShellCtrls.pas里):
function ListSortFunc(Item1, Item2: Pointer): Integer;
const
R: array[Boolean] of Byte = (0, 1);
begin
Result := 0;
if (Item1 = nil) or (Item2 = nil) then Exit; Result := R[TShellFolder(Item2).IsFolder] - R[TShellFolder(Item1).IsFolder];
if (Result = 0) and (TShellFolder(Item1).ParentShellFolder <> nil) then
Result := Smallint(
TShellFolder(Item1).ParentShellFolder.CompareIDs(
0,
TShellFolder(Item1).RelativeID,
TShellFolder(Item2).RelativeID)
);
end;修改Smallint()函数里的第二个参数,就可以按照相应的栏排序了。
可以在TCustomShellListView类里添加两个变量,把相应的排序栏和正序,倒序信息做一个接口引出来,这两个变量改变了,就refresh。把第二个参数改成你添加的变量名。倒序应该把TShellFolder(Item1).RelativeID和TShellFolder(Item2).RelativeID连个变量换下位置。
修改后重新编译安装控件。
--------------------------------------
RzShellList哪里有啊,Baidu了一下,找不到……
这里下载:
http://www.ccrun.com/view.asp?id=186程序名称:Raize Components v5.3 (完整源码)
文件大小:38.5MB
更新时间:2010-02-19 00:50:56
开发工具:Delphi7,9~12,14 / C++Builder10~12,14
开发者:raize
官方网站:http://www.raize.com/
详细介绍:
Raize Components 包含了 90 个 Delphi 和 C++ Builder 的控件组,它的一些特点如:制定窗体框架、高级的编辑控件等都使开发者很容易的设计出灵活的、自己喜欢的样式的应用程序。本版本支持以下 IDE:
Delphi 7,2005
BDS 2006 (Delphi 2006, C++Builder 2006)
RAD Studio 2007 (Delphi 2007, C++Builder 2007)
RAD Studio 2009 (Delphi 2009, C++Builder 2009)
RAD Studio 2010 (Delphi 2010, C++Builder 2010)