unit DocList; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ExtCtrls,IISUnit; type TDocListForm = class(TForm) Panel1: TPanel; OkBt: TButton; CancelBt: TButton; Panel2: TPanel; DocLV: TListView; Panel3: TPanel; Edit1: TEdit; IndexLB: TLabel; procedure OkBtClick(Sender: TObject); procedure CancelBtClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure DocLVDblClick(Sender: TObject); procedure DocLVColumnClick(Sender: TObject; Column: TListColumn); procedure DocLVCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); procedure FormDestroy(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure FormShow(Sender: TObject); private { Private declarations } public { Public declarations } FormIDList:TStringlist; end; var DocListForm: TDocListForm; implementation {$R *.dfm} procedure TDocListForm.CancelBtClick(Sender: TObject); begin ModalResult := mrCancel; end; procedure TDocListForm.DocLVColumnClick(Sender: TObject; Column: TListColumn); begin DocLV.Tag := column.Index; DocLV.CustomSort(nil, 1); end; procedure TDocListForm.DocLVCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer); begin If DocLV.Tag = 0 Then begin Compare := CompareText(Item1.Caption,Item2.Caption); end else begin Compare := CompareText(Item1.SubItems[DocLV.Tag-1],Item2.SubItems[DocLV.Tag-1]); end; end; procedure TDocListForm.DocLVDblClick(Sender: TObject); begin if DocLV.Selected <> nil then OKBtclick(nil); end; procedure TDocListForm.Edit1Change(Sender: TObject); Var i,v,v1 : Integer; begin DocLV.Clear; for I := 0 to FormIDList.Count - 1 do begin if (Edit1.Text ='') or (Pos(Edit1.Text,FormIDList.Strings[i])>0) then begin With DocLV.Items.Add do begin v:=Pos('#@#',FormIDList.Strings[i]); v1:=length(FormIDList.Strings[i]); Caption := Copy(FormIDList.Strings[i],1,v-1); SubItems.Add(Copy(FormIDList.Strings[i],v+3,v1-v-2)); end; end; end; DocLV.Tag := 0; DocLV.CustomSort(nil, 1); end; procedure TDocListForm.FormCreate(Sender: TObject); begin PostMessage(Handle,WM_ACTIVATE,WA_CLICKACTIVE,0); FormIDList := TStringlist.Create; end; procedure TDocListForm.FormDestroy(Sender: TObject); begin FormIDList.Free; end; procedure TDocListForm.FormShow(Sender: TObject); begin DocLV.Tag := 0; //DocLV.CustomSort(nil, 1); end; procedure TDocListForm.OkBtClick(Sender: TObject); begin if DocLV.Selected = nil then begin Showmessage(_Msg('©|¥¼¿ï¾ÜÂkÀɤå¥ó')); Exit; end; ModalResult := mrOK; end; end.