Delphi7中Listview的常用功能匯總
有些時候我們在使用Delphi7的Listview過程中總是要改一些默認的設(shè)置,現(xiàn)在把它們集中起來匯總?cè)缦隆?/p>
MultiSelect := True; 使Listview可以同時選擇多行
GridLines := True; 使Listview顯示格線
ViewStyle := vsReport; 顯示數(shù)據(jù)項的詳細列表
HideSelection := True; 使listview失去焦點時,選中行不高亮
//設(shè)置顏色 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;
這個功能存在一個問題:數(shù)字排序會按字符類似排,例如:1,10,102,3,34,356......感興趣的讀者可以加以完善
相關(guān)文章
Delphi 根據(jù)字符串找到函數(shù)并執(zhí)行的實例
這篇文章主要介紹了Delphi 根據(jù)字符串找到函數(shù)并執(zhí)行的實例的相關(guān)資料,希望通過本能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下2017-09-09