doom4ster
2017-03-16 c2ca52370281338f658b7fae6d30f418dfda4d35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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.