Delphi7中Listview的常用功能汇总
<p>有些时候我们在使用Delphi7的Listview过程中总是要改一些默认的设置,现在把它们集中起来汇总如下。</p><p>MultiSelect := True; 使Listview可以同时选择多行</p>
<p>GridLines := True; 使Listview显示格线</p>
<p>ViewStyle := vsReport; 显示数据项的详细列表</p>
<p>HideSelection := True; 使listview失去焦点时,选中行不高亮</p>
<div class="jb51code">
<pre class="brush:delphi;">
//设置颜色
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.Width;
subRect.Right := subRect.Right + SubRect.Left + (Sender as TListView).Column.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);
end;
end;
</pre>
</div>
<div class="jb51code">
<pre class="brush:delphi;">
//排序功能
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, Item2.SubItems);
end;
end;
</pre>
</div>
<p>这个功能存在一个问题:数字排序会按字符类似排,例如:1,10,102,3,34,356......感兴趣的读者可以加以完善</p>
<div class="art_xg">
<b>您可能感兴趣的文章:</b><ul><li>DELPHI7.0 获取硬盘、CPU、网卡序列号的代码</li><li>Delphi实现限定软件使用时间的方法</li><li>Delphi实现图片滚动切换的完整实例代码</li><li>Delphi之Pascal语言中的关键字及保留字汇总</li><li>Delphi常用关键字用法详解</li><li>Delphi实现读取系统时间与日期完整实例</li><li>Delphi中对时间操作方法汇总</li><li>delphi7连接mysql5的实现方法</li><li>Delphi实现获取磁盘空间大小的方法</li></ul>
</div>
</div>
<!--endmain-->
頁:
[1]