虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > Delphi编程 > Delphi7中Listview的常用功能汇总

Delphi7中Listview的常用功能汇总
类别:Delphi编程   作者:码皇   来源:互联网   点击:

这篇文章主要介绍了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......感兴趣的读者可以加以完善

相关热词搜索: Delphi Listview 功能