Listview中实现点击栏目标题排序
点击次数:44 次 发布日期:2008-11-09 08:38:23 作者:源代码网
|
源代码网推荐 源代码网推荐 这段代码能实现升序排列,降序你稍作改动即可。如果是按字段数据类型排序则可用sql语句实现。另外这段代码可实现响应双击第一列下的图标。 源代码网推荐 源代码网推荐 unit Unit1; 源代码网推荐 源代码网推荐 interface 源代码网推荐 源代码网推荐 uses 源代码网推荐 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 源代码网推荐 StdCtrls, ComCtrls, ImgList, Db, DBTables; 源代码网推荐 源代码网推荐 type 源代码网推荐 TForm1 = class(TForm) 源代码网推荐 ListView1: TListView; 源代码网推荐 Button1: TButton; 源代码网推荐 ImageList1: TImageList; 源代码网推荐 Query1: TQuery; 源代码网推荐 procedure Button1Click(Sender: TObject); 源代码网推荐 procedure ListView1ColumnClick(Sender: TObject; Column: TListColumn); 源代码网推荐 procedure ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 源代码网推荐 Data: Integer; var Compare: Integer); 源代码网推荐 procedure ListView1DblClick(Sender: TObject); 源代码网推荐 procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton; 源代码网推荐 Shift: TShiftState; X, Y: Integer); 源代码网推荐 private 源代码网推荐 mouseX, mouseY: Integer; 源代码网推荐 { Private declarations } 源代码网推荐 public 源代码网推荐 { Public declarations } 源代码网推荐 end; 源代码网推荐 源代码网推荐 var 源代码网推荐 Form1: TForm1; 源代码网推荐 var ColumnToSort: Integer; 源代码网推荐 implementation 源代码网推荐 源代码网推荐 {$R *.DFM} 源代码网推荐 源代码网推荐 procedure TForm1.Button1Click(Sender: TObject); 源代码网推荐 var 源代码网推荐 int:integer; 源代码网推荐 begin 源代码网推荐 listview1.Items.Clear; 源代码网推荐 int:=0; 源代码网推荐 with query1 do 源代码网推荐 begin 源代码网推荐 close; 源代码网推荐 sql.Clear; 源代码网推荐 sql.add("select partno,description,onorder,cost from parts"); 源代码网推荐 prepare; 源代码网推荐 open; 源代码网推荐 first; 源代码网推荐 end; 源代码网推荐 while not query1.Eof do 源代码网推荐 begin 源代码网推荐 listView1.Items.Add.Caption:= query1.fieldbyname("partno").asstring; 源代码网推荐 ListView1.Items.Item[int].ImageIndex:=0; 源代码网推荐 ListView1.Items.Item[int].SubItems.Append( query1.fieldbyname("description").asstring); 源代码网推荐 ListView1.Items.Item[int].SubItems.Append( query1.fieldbyname("onorder").asstring); 源代码网推荐 ListView1.Items.Item[int].SubItems.Append( query1.fieldbyname("cost").asstring); 源代码网推荐 int:=int 1; 源代码网推荐 query1.Next; 源代码网推荐 end; 源代码网推荐 源代码网推荐 end; 源代码网推荐 源代码网推荐 源代码网推荐 procedure TForm1.ListView1ColumnClick(Sender: TObject; 源代码网推荐 Column: TListColumn); 源代码网推荐 begin 源代码网推荐 ColumnToSort := Column.Index; 源代码网推荐 (Sender as TCustomListView).AlphaSort; 源代码网推荐 end; 源代码网推荐 源代码网推荐 procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 源代码网推荐 Data: Integer; var Compare: Integer); 源代码网推荐 var 源代码网推荐 ix: Integer; 源代码网推荐 begin 源代码网推荐 if ColumnToSort = 0 then 源代码网推荐 Compare := CompareText(Item1.Caption,Item2.Caption) 源代码网推荐 else begin 源代码网推荐 ix := ColumnToSort - 1; 源代码网推荐 Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]); 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 procedure TForm1.ListView1DblClick(Sender: TObject); 源代码网推荐 var 源代码网推荐 Item: TListItem; 源代码网推荐 begin 源代码网推荐 Item := ListView1.GetItemAt(mouseX, mouseY); 源代码网推荐 if (Item <> nil) then 源代码网推荐 begin 源代码网推荐 beep(); 源代码网推荐 //在这可写些响应双击图标代码。 源代码网推荐 end; 源代码网推荐 end; 源代码网推荐 源代码网推荐 procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton; 源代码网推荐 Shift: TShiftState; X, Y: Integer); 源代码网推荐 begin 源代码网推荐 mouseX := X; 源代码网推荐 mouseY := Y; 源代码网推荐 end; 源代码网推荐 源代码网推荐 end. 源代码网推荐 源代码网供稿. |
