文档章节

Delphi listview 点击列头排序

vga
 vga
发布于 2014/08/26 15:59
字数 180
阅读 600
收藏 0

Delphi listview 点击列头排序  

listview 的数字排序。

首先添加全局变量

 m_bSort: Boolean = false; CustomSortProc(Item1, Item2: TListItem; ParamSort: Integer): Integer;;


之后在需要排序的listview 控件的OnColumClick 事件中编写代码

  TMainForm.lv_UpLoadListColumnClick(Sender: TObject;
    Column: TListColumn);  
     (Column. = 1)  (Column. = 3) 
    
      lv_UpLoadList.CustomSort(@CustomSortProc, Column.);
      m_bSort :=  m_bSort;    ;  ;


之后编写全局函数

 CustomSortProc(Item1, Item2: TListItem;
    ParamSort: Integer): Integer; ;  
    
    txt1, txt2: Integer;  
     ParamSort <> 0 
    
      try
        txt1 := StrToInt(Item1.SubItems.Strings[ParamSort - 1]);
        txt2 := StrToInt(Item2.SubItems.Strings[ParamSort - 1]);         m_bSort 
        
          
          Result := txt1 - txt2;        
        
        
          Result := -(txt1 - txt2);          
        ;
      except      ;    
    
    
       m_bSort 
      
        Result := CompareText(Item1.Caption, Item2.Caption);         
       
      
      
        Result := -CompareText(Item1.Caption, Item2.Caption);           ;     
    ;   ;

以上是数字的排序,如果需要汉字什么的排序,这将上面的strtoint去掉,并将上面的注释行替换上面的行就行了

 

本文转载自:http://blog.163.com/nothing_cj/blog/static/82560196201082312829731/

vga

vga

粉丝 23
博文 371
码字总数 26854
作品 0
佳木斯
私信 提问
加载中

评论(3)

vga
vga 博主
http://blog.csdn.net/panpanxj/article/details/2692072
vga
vga 博主
function CustomSortProc(Item1, Item2: TListItem;
ParamSort: Integer): Integer; stdcall;
var
// txt1, txt2: string;
txt1, txt2: Integer;
begin
if ParamSort <> 0 then
begin
try
txt1 := StrToInt(Item1.SubItems.Strings[ParamSort - 1]);
txt2 := StrToInt(Item2.SubItems.Strings[ParamSort - 1]);
if m_bSort then
begin
// Result := CompareText(txt1, txt2);
Result := txt1 - txt2;
end
else
begin
Result := -(txt1 - txt2);
// Result := -CompareText(txt1, txt2);
end;
except
end;

end
else
begin
if m_bSort then
begin

Result := CompareText(Item1.Caption, Item2.Caption);
end
else
begin
Result := -CompareText(Item1.Caption, Item2.Caption);
end;
end;
end;
vga
vga 博主
m_bSort: Boolean = false;//控制双向排序
function CustomSortProc(Item1, Item2: TListItem; ParamSort: Integer): Integer;stdcall;

之后在需要排序的listview 控件的OnColumClick 事件中编写代码

procedure TMainForm.lv_UpLoadListColumnClick(Sender: TObject;
Column: TListColumn);
begin
if (Column.Index = 1) or (Column.Index = 3) then
begin
lv_UpLoadList.CustomSort(@CustomSortProc, Column.Index);
m_bSort := not m_bSort;
end;

end;


之后编写全局函数

function CustomSortProc(Item1, Item2: TListItem;
ParamSort: Integer): Integer; stdcall;
var
// txt1, txt2: string;
txt1, txt2: Integer;
begin
if ParamSort <> 0 then
begin
try
txt1 := StrToInt(Item1.SubItems.Strings[ParamSort - 1]);
txt2 := StrToInt(Item2.SubItems.Strings[ParamSort - 1]);
if m_bSort then
begin
// Result := CompareText(txt1, txt2);
Result := txt1 - txt2;
end
else
begin
Result := -(txt1 - txt2);
// Result := -
C# ListView用法详解 很完整

一、ListView类 1、常用的基本属性: (1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。 (2) GridLines:设置行和列之间是否显示网格线。(...

林枫i
2015/12/25
670
0
DTK列表控件原理与API详解

为什么要重新造一个ListView控件? 在开发应用程序的过程中,经常会使用到列表来展现内容(比如音乐播放器的播放列表和系统监视器的进程列表),而制作列表内容不能像传统的VBoxLayout来添加...

ManateeLazyCat
2017/11/04
0
0
C#语言中对象数组到DataTable的转换

今天在开发工作中遇到了一个问题: 我的很多DataGridView,因为数据源(DataSource)使用的是数组,导致在点击每列列头的时候无法就指定列进行排序 因此我需要写一个将数组转换为DataTable的...

北风其凉
2015/11/12
1K
0
Ant Design 3.10.1 带来 Ant Design Mobile of Angular

Ant Design 3.10.1 发布了,此次更新内容如下: Ant Design Mobile of Angular(NG-ZORRO-Mobile)发布! 更新 项目实战 文档为最新的 umi 技术栈。 Table 修复未指定排序的列头点击时也会触...

h4cd
2018/10/13
3.4K
1
C# - 使用自定义控件实现名单修改的比较功能

一、写在前面 在工作中需要实现一个场景,有一个名单类的数据需要维护,这个维护工作需要有一个复核功能,为了方便复核时对名单变更情况有一个良好的掌握,需要做一个便跟前后名单的对比功能...

北风其凉
2016/01/26
586
0

没有更多内容

加载失败,请刷新页面

加载更多

Mybatis Plus删除

/** @author beth @data 2019-10-17 00:30 */ @RunWith(SpringRunner.class) @SpringBootTest public class DeleteTest { @Autowired private UserInfoMapper userInfoMapper; /** 根据id删除......

一个yuanbeth
今天
4
0
总结

一、设计模式 简单工厂:一个简单而且比较杂的工厂,可以创建任何对象给你 复杂工厂:先创建一种基础类型的工厂接口,然后各自集成实现这个接口,但是每个工厂都是这个基础类的扩展分类,spr...

BobwithB
今天
5
0
java内存模型

前言 Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模...

ls_cherish
今天
4
0
友元函数强制转换

友元函数强制转换 p522

天王盖地虎626
昨天
5
0
js中实现页面跳转(返回前一页、后一页)

本文转载于:专业的前端网站➸js中实现页面跳转(返回前一页、后一页) 一:JS 重载页面,本地刷新,返回上一页 复制代码代码如下: <a href="javascript:history.go(-1)">返回上一页</a> <a h...

前端老手
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部