Filelistbox排序

ImJaden 2010-10-11 09:47:19
我把文件夹里的图片统一按更名了,可是加载在FileListBox里序列很乱,有什么方法让它按序排列比如:相册0,相册1,相册2...

...全文
467 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
软件钢琴师 2010-10-12
  • 打赏
  • 举报
回复
lisview 的排序 可以参照一下

在ListView的OnColumnClick事件里:
procedure TMainForm.SortLVColClick(Sender: TObject;
Column: TListColumn);
const
OrderStr: array[1..2] of String =
('↑','↓');
var
ListView: TListView;
OldOrderColumn: TListColumn;
begin
ListView := (Sender as TListView);
if ListView.Tag = Column.Index then
begin
case Column.Tag of
1, 2:
begin
Column.Tag := 3 - Column.Tag;
Column.Caption :=
LeftStr(Column.Caption,
Length(Column.Caption) - Length(OrderStr[2]));
end;
0: Column.Tag := 1;
end;
end
else if ListView.Tag >= 0 then
begin
OldOrderColumn := ListView.Column[ListView.Tag];
case OldOrderColumn.Tag of
1: OldOrderColumn.Caption :=
LeftStr(OldOrderColumn.Caption,
Length(OldOrderColumn.Caption) - Length(OrderStr[1]));
2: OldOrderColumn.Caption :=
LeftStr(OldOrderColumn.Caption,
Length(OldOrderColumn.Caption) - Length(OrderStr[2]));
end;
end;
if Column.Tag = 0 then
Column.Tag := 1;
Column.Caption := Column.Caption + OrderStr[Column.Tag];
ListView.Tag := Column.Index;
ListView.AlphaSort;
end;

在ListView.OnCompare事件中:
procedure TMainForm.ListViewCompare(Sender: TObject; Item1,
Item2: TListItem; Data: Integer; var Compare: Integer);
var
ListView: TListView;
OrderBy: Integer;
OrderType: Integer;
Str1, Str2: String;
begin
ListView := (Sender as TListView);
OrderBy := ListView.Tag;
if OrderBy >= 0 then
begin
OrderType := ListView.Column[OrderBy].Tag;
if OrderBy = 0 then
begin
Str1 := Item1.Caption;
Str2 := Item2.Caption;
end
else
begin
if OrderBy <= Item1.SubItems.Count then
Str1 := Item1.SubItems[OrderBy - 1]
else
Str1 := '';
if OrderBy <= Item2.SubItems.Count then
Str2 := Item2.SubItems[OrderBy - 1]
else
Str2 := '';
end;
case OrderType of
1: Compare := AnsiCompareText(Str1, Str2);
2: Compare := AnsiCompareText(Str2, Str1);
end;
end;
end;

事先要把ListView的Tag属性设为-1
以上代码在访问ListView时都使用了Sender,可以直接使用。
ImJaden 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lyhoo163 的回复:]
FileListBox.item进行排序
[/Quote]
能说一下具体怎么实现吗?
ImJaden 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 kye_jufei 的回复:]
把filelistbox的item進行update...
[/Quote]
把filelistbox的item的属性里没有update呀?
ImJaden 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dinoalex 的回复:]
filelistbox1.Update
[/Quote]
这个达不到想要的效果,只能更新一下
kye_jufei 2010-10-12
  • 打赏
  • 举报
回复
把filelistbox的item進行update...
lyhoo163 2010-10-12
  • 打赏
  • 举报
回复
FileListBox.item进行排序
dinoalex 2010-10-12
  • 打赏
  • 举报
回复
filelistbox1.Update

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧