Delphi7中Listview的常用功能汇总

首页 > 软件编程 > Delphi 更新日期: 2015-07-19
这篇文章主要介绍了Delphi7中Listview的常用功能,需要的朋友可以参考下

有些时候我们在使用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......感兴趣的读者可以加以完善


> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!

相关文章
  • Spring常用注解汇总
    这篇文章主要介绍了Spring常用注解汇总,需要的朋友可以参考下本文汇总了Spring的常用注解,以方便大家查询和使用,具体如下: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package="cn.test"/> @Conf ...
  • 9个PHP开发常用功能函数小结
    9个PHP开发常用功能函数小结,学习php的朋友可以参考下.1. 函数的任意数目的参数 你可能知道PHP允许你定义一个默认参数的函数.但你可能并不知道PHP还允许你定义一个完全任意的参数的函数 下面是一个示例向你展示了默认参数的函数: 代码如下: // 两个默认参数的函数 function foo($arg1 = '', $arg2 = '') { echo ...
  • Lua中的函数相关知识点整理汇总
    这篇文章主要介绍了Lua中的函数相关知识点整理汇总,包括函数的参数传递和定义函数等基本知识,需要的朋友可以参考下 函数是一组一起执行任务的语句.可以把代码放到独立的函数中.怎么划分代码功能之间的不同,但在逻辑上划分通常是让每个函数执行特定的任务. Lua语言提供了程序可以调用大量的内置方法.例如,方法print()打印作为输入传参数在控制台中. 函数是已知的 ...
  • C#DatagridView常用操作汇总
    这篇文章主要介绍了C# DatagridView常用操作汇总,罗列了一些常用的用法与技巧,需要的朋友可以参考下本文汇总了C#中DatagridView的常用操作,有助于读者加深对C# DatagridView用法的理解,具体如下: 1.(最基本的技巧).获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGr ...
  • Android中ListView如何分页加载数据
    Android中ListView如何分页加载数据
    这篇文章主要介绍了Android中ListView如何分页加载数据,本文就结合实例来演示一下使用ListView获取数据的过程,需要的朋友可以参考下熟悉Android的朋友们都知道,不管是微博客户端还是新闻客户端,都离不开列表组件,可以说列表组件是Android数据展现方面最重要的组件,我们今天就要讲一讲列表组件ListView加载数据的相关内容.通常来说, ...
猜你喜欢