Delphi7中Listview的常用功能汇总

所属分类: 软件编程 / Delphi 阅读数: 159
收藏 0 赞 0 分享

有些时候我们在使用Delphi7的Listview过程中总是要改一些默认的设置,现在把它们集中起来汇总如下。

MultiSelect := True;   使Listview可以同时选择多行

GridLines := True;     使Listview显示格线

ViewStyle := vsReport; 显示数据项的详细列表

HideSelection := True;  使listview失去焦点时,选中行不高亮

//设置颜色
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
 Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
 subRect, itemRect: TRect;
 i, SubItem: Integer;
begin
 DefaultDraw := False;
 if Item.Selected then begin
  Sender.Canvas.Font.Color := clRed; //选中行字体颜色
  Sender.Canvas.Brush.Color := clgray; //clGreen; 选中行高亮颜色
 end else begin
  Sender.Canvas.Font.Color := clNavy; //正常行字体颜色
  Sender.Canvas.Brush.Color := clWhite; //正常行高亮颜色
 end;
 itemRect := Item.DisplayRect(drLabel);
 subRect := itemRect;
 for SubItem := 0 to (Sender as TListView).Columns.Count - 1 do
 begin
  subRect.Left := itemRect.Left;
  for i := 1 to SubItem do
  begin
   subRect.Left := subRect.Left + (Sender as TListView).Column[i - 1].Width;
   subRect.Right := subRect.Right + SubRect.Left + (Sender as TListView).Column[i].Width;
  end;
  if SubItem = 0 then
  begin
   subRect.Right := subRect.Right + 2;
   Sender.Canvas.TextRect(subRect, subRect.Left, subRect.Top, Item.Caption);
  end else
   Sender.Canvas.TextRect(subRect, subRect.Left, subRect.Top, Item.SubItems[SubItem - 1]);
 end;
end;

//排序功能
 private
  { Private declarations }
  SortCol: Integer;
  SortWay: Integer;
 
procedure TForm1.ListView1ColumnClick(Sender: TObject;
 Column: TListColumn);
begin
 SortCol := Column.Index;
 if (SortWay = 1) then SortWay := -1 else SortWay := 1;
 (Sender as TCustomListView).AlphaSort;
end;

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
 Data: Integer; var Compare: Integer);
var
 t: Integer;
begin
 if (SortCol = 0) then
 begin
  Compare := SortWay * CompareText(Item1.Caption, Item2.Caption);
 end else
 begin
  t := SortCol - 1;
  Compare := SortWay * CompareText(Item1.SubItems[t], Item2.SubItems[t]);
 end;
end;

这个功能存在一个问题:数字排序会按字符类似排,例如:1,10,102,3,34,356......感兴趣的读者可以加以完善

更多精彩内容其他人还在看

Delphi修改操作注册表权限的代码

Delphi修改操作注册表权限的代码,使用Delphi的朋友可以参考下。
收藏 0 赞 0 分享

Delphi书籍15本网盘下载地址整理

由Delphi园地整理的Delphi书籍15本常用的参考书籍,需要的朋友可以下载了。
收藏 0 赞 0 分享

wordpress主题支持自定义菜单及修改css样式实现方法

使用wordpress过程中会遇到主题支持自定义菜单以及修改css样式问题,本文将介绍详细解决方法,需要朋友可以参考下
收藏 0 赞 0 分享

delphi xe 可用的MD5算法

delphi xe 可用的MD5算法,需要的朋友可以参考一下
收藏 0 赞 0 分享

Delphi隐藏TPageControl的标签实例介绍

件是一组页面集,用于构造一个多页对话框,它显示多个交互页(TTabSheet 对象),接下来为大家介绍下Delphi隐藏TPageControl的标签方法
收藏 0 赞 0 分享

delphi中exit,abort,break,continue的区别介绍

本文详细介绍下delphi中表示跳出的有break,continue, exit,abort, halt, runerror的区别,感兴趣的朋友可以参考下哈,希望对你学习跳出有所帮助
收藏 0 赞 0 分享

delphi设置开机自动启动函数具体实现

有些程序要设置为开机启动,所以自己写了个函数方便以后使用,实现比较简单,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

delphi简单判断程序30秒没有键盘和鼠标动作示例

本文为大家详细介绍下delphi判断程序30秒没有键盘和鼠标动作,这里给timer设置了1000ms)的参数,表示30秒的间隔,具体实现如下,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

delphi程序全屏显示无标题栏覆盖整个屏幕(适合屏保)

delphi 简单实现程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,具体代码如下,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享

delphi发送消息控制滚动条使用示例

本文为大家详细介绍下delphi实现发送消息控制滚动条,主要函数及用法如下,感兴趣的朋友可以参考下哈
收藏 0 赞 0 分享
查看更多