Develop and Download Open Source Software

Browse CVS Repository

Annotation of /gikonavigoeson/gikonavi/Search.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.19 - (hide annotations) (download) (as text)
Mon Apr 24 16:12:53 2006 UTC (17 years, 11 months ago) by h677
Branch: MAIN
CVS Tags: v1_59_0_771, v1_59_0_770, v1_59_0_773, v1_59_0_772, v1_59_0_775, v1_59_0_774, v1_59_0_777, v1_59_0_776, v1_56_0_715, v1_59_0_778, v1_63_1_819, v1_57_0_737, v1_62_0_812, v1_57_0_735, v1_57_0_734, v1_57_0_733, v1_57_0_732, v1_57_0_731, v1_57_0_730, v1_57_0_739, v1_57_0_738, v1_59_1_765, v1_53_0_671, v1_60_0_788, v1_60_0_789, v1_54_0_677, v1_54_0_676, v1_58_0_748, v1_58_0_745, v1_60_0_781, v1_60_0_782, v1_58_0_746, v1_60_0_784, v1_54_0_678, v1_60_0_786, v1_60_0_787, v1_56_0_707, v1_59_0_767, v1_56_0_705, v1_56_0_704, v1_56_0_703, v1_56_0_702, v1_56_0_701, v1_56_0_700, v1_59_1_778, v1_57_0_723, v1_52_1_658, v1_59_0_768, v1_59_0_769, v1_57_0_725, v1_57_0_726, v1_57_0_727, v1_57_0_720, v1_57_0_722, v1_57_1_744, v1_57_0_728, v1_57_0_729, v1_57_0_736, v1_58_0_752, v1_58_0_750, v1_58_0_751, v1_58_0_756, v1_58_0_757, v1_58_0_754, v1_58_0_755, v1_58_0_759, v1_57_0_719, v1_57_0_718, v1_56_0_716, v1_54_0_687, v1_56_0_710, v1_56_0_711, v1_56_1_717, v1_56_1_716, v1_54_0_688, v1_54_0_689, v1_54_0_684, v1_54_0_685, v1_53_0_664, v1_61_0_796, v1_61_0_797, v1_61_0_795, v1_61_0_798, v1_61_0_799, v1_53_0_661, v1_53_0_663, v1_53_0_662, v1_53_0_665, v1_53_0_667, v1_53_0_666, v1_53_0_669, v1_53_0_668, v1_55_0_692, v1_55_0_693, v1_55_0_696, v1_55_0_697, v1_55_0_694, v1_55_0_695, v1_54_1_691, v1_56_2_724, v1_56_2_722, v1_52_0_652, v1_55_1_697, v1_52_0_654, v1_56_0_714, v1_53_0_672, v1_53_0_670, v1_63_0_818, v1_63_0_817, v1_63_0_816, v1_63_0_815, v1_54_0_686, v1_54_0_680, v1_54_0_681, v1_62_0_805, v1_62_0_804, v1_62_0_807, v1_62_0_806, v1_56_0_712, v1_62_0_803, v1_62_0_802, v1_56_0_713, v1_62_0_809, v1_54_0_682, v1_56_0_721, v1_54_0_683, v1_60_0_780, v1_60_0_779, v1_62_0_810, v1_62_0_811, v1_58_0_747, v1_60_0_783, v1_54_0_679, v1_59_2_785, marged_bRESPOPUP, v1_54_0_675, v1_56_0_706, root-of-Bb53, v1_52_1_657, v1_54_0_674, v1_52_0_660, v1_60_1_793, v1_54_0_690, v1_58_0_763, v1_58_0_762, v1_58_0_761, v1_58_0_760, v1_62_1_813, v1_57_2_749, v1_57_0_742, v1_57_0_743, v1_57_0_740, v1_57_0_741, v1_52_0_655, v1_56_0_709, v1_57_0_744, v1_52_0_656, v1_56_0_708, v1_61_0_800, v1_53_1_673, v1_56_0_699, v1_56_0_698, v1_60_0_793, v1_60_0_792, v1_60_0_791, v1_60_0_790, v1_60_2_794, v1_61_1_801, HEAD
Branch point for: Bb57, Bb56, Bb55, Bb53, Bb52, Bb62, Bb63, Bb60, Bb61, Bb59, Bb58, bRESPOPUP, bListSU, Bb54
Changes since 1.18: +11 -0 lines
File MIME type: text/x-pascal
検索中のフォームのクローズでのキャンセル処理追加。
ログ検索フォームを消さずに、終了したときのAccesViolation対策

1 hi_ 1.1 unit Search;
2    
3     interface
4    
5     uses
6     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7     Dialogs, StdCtrls, ExtCtrls, ComCtrls,
8 yoffy 1.10 BoardGroup, GikoSystem, bmRegExp, YofUtils;
9 hi_ 1.1
10     type
11     TSearchDialog = class(TForm)
12     BoardListView: TListView;
13     BoardLabel: TLabel;
14     OkBotton: TButton;
15     CancelBotton: TButton;
16     Label1: TLabel;
17 yoffy 1.8 SearchComboBox: TComboBox;
18 hi_ 1.1 CategoryListView: TListView;
19     AllReleaseButton: TButton;
20     AllSelectButton: TButton;
21     GroupBox1: TGroupBox;
22 yoffy 1.8 NameCheckBox: TCheckBox;
23     MailCheckBox: TCheckBox;
24     IDCheckBox: TCheckBox;
25     SentenceCheckBox: TCheckBox;
26     RegExpCheckBox: TCheckBox;
27     GoogleCheckBox: TCheckBox;
28 h677 1.17 FuzzyCharDicCheckBox: TCheckBox;
29 h677 1.18 BoardsProgressBar: TProgressBar;
30 hi_ 1.1 procedure FormCreate(Sender: TObject);
31     procedure CategoryListViewSelectItem(Sender: TObject; Item: TListItem;
32     Selected: Boolean);
33     procedure BoardListViewChange(Sender: TObject; Item: TListItem;
34     Change: TItemChange);
35     procedure AllSelectButtonClick(Sender: TObject);
36     procedure AllReleaseButtonClick(Sender: TObject);
37     procedure OkBottonClick(Sender: TObject);
38 yoffy 1.8 procedure BoardListViewDblClick(Sender: TObject);
39     procedure CancelBottonClick(Sender: TObject);
40     procedure BoardListViewResize(Sender: TObject);
41 h677 1.18 procedure FormDestroy(Sender: TObject);
42 h677 1.19 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
43 hi_ 1.1 private
44     { Private 鐃緒申鐃緒申 }
45     FChkItem: TObject;
46 yoffy 1.8 FRegItem: TThreadItem;
47 yoffy 1.14 FCancel: Boolean;
48 hi_ 1.1 procedure SetCategoryList;
49     procedure SetBoardList(Item: TListItem);
50     procedure CheckItem(Item: TObject);
51 yoffy 1.8 procedure OnMatch(Sender: TObject; LineInfo: RE_LineInfo_t);
52 h677 1.18 procedure SearchLogs( Reg: TGrep );
53     procedure SearchLog(Reg: TGrep; Item: TThreadItem);
54     function CountBoards : Integer;
55 hi_ 1.1 public
56     { Public 鐃緒申鐃緒申 }
57     // constructor Create(AOwner: TComponent); overload; override;
58     constructor Create(AOwner: TComponent; ChkItem: TObject); virtual; //overload;
59     end;
60    
61     var
62     SearchDialog: TSearchDialog;
63    
64     implementation
65    
66 yoffy 1.10 uses Giko;
67    
68 hi_ 1.1 {$R *.dfm}
69    
70     {constructor TSearchDialog.Create(AOwner: TComponent);
71     begin
72     Create(AOwner, nil);
73     end;}
74    
75     constructor TSearchDialog.Create(AOwner: TComponent; ChkItem: TObject);
76     begin
77     inherited Create(AOwner);
78     FChkItem := ChkItem;
79 yoffy 1.14 FCancel := false;
80 hi_ 1.1 end;
81    
82     procedure TSearchDialog.FormCreate(Sender: TObject);
83     begin
84     SetCategoryList;
85 yoffy 1.6 CheckItem(FChkItem);
86 hi_ 1.1 end;
87    
88     procedure TSearchDialog.CategoryListViewSelectItem(Sender: TObject;
89     Item: TListItem; Selected: Boolean);
90     begin
91     if not Selected then Exit;
92     SetBoardList(Item);
93     end;
94    
95     procedure TSearchDialog.SetCategoryList;
96     var
97 yoffy 1.14 i, j, k: integer;
98 hi_ 1.1 Item: TListItem;
99 yoffy 1.14 bbs : TBBS;
100 hi_ 1.1 begin
101     Item := CategoryListView.Items.Add;
102     Item.Caption := '鐃?鐃緒申鐃緒申鐃緒申鐃?';
103     Item.Data := nil;
104 yoffy 1.14 for k := 0 to Length( BBSs ) - 1 do begin
105     bbs := BBSs[ k ];
106     for i := 0 to bbs.Count - 1 do begin
107     Item := CategoryListView.Items.Add;
108     Item.Caption := bbs.Items[i].Title;
109     Item.Data := bbs.Items[i];
110     for j := 0 to bbs.Items[i].Count - 1 do
111     bbs.Items[i].Items[j].BoolData := False;
112     end;
113 hi_ 1.1 end;
114     end;
115    
116     procedure TSearchDialog.SetBoardList(Item: TListItem);
117     var
118 yoffy 1.14 i, j, k: Integer;
119 hi_ 1.1 NewItem: TListItem;
120     Category: TCategory;
121 yoffy 1.14 bbs : TBBS;
122 hi_ 1.1 begin
123     BoardListView.Clear;
124     if Item.Data = nil then begin
125 yoffy 1.14 for k := 0 to Length( BBSs ) - 1 do begin
126     bbs := BBSs[ k ];
127     for i := 0 to bbs.Count - 1 do begin
128     Category := bbs.Items[i];
129     for j := 0 to Category.Count - 1 do begin
130     NewItem := BoardListView.Items.Add;
131     NewItem.Caption := Category.Items[j].Title;
132     NewItem.Checked := Category.Items[j].BoolData;
133     NewItem.Data := Category.Items[j];
134     end;
135 hi_ 1.1 end;
136     end;
137     end else if TObject(Item.Data) is TCategory then begin
138     Category := TCategory(Item.Data);
139     for i := 0 to Category.Count - 1 do begin
140     NewItem := BoardListView.Items.Add;
141     NewItem.Caption := Category.Items[i].Title;
142     NewItem.Checked := Category.Items[i].BoolData;
143     NewItem.Data := Category.Items[i];
144     end;
145     end;
146     end;
147    
148     procedure TSearchDialog.CheckItem(Item: TObject);
149     var
150     i: Integer;
151     Category: TCategory;
152     Board: TBoard;
153     begin
154     if Item is TCategory then begin
155     Category := TCategory(Item);
156     for i := 0 to CategoryListView.Items.Count - 1 do begin
157     if TObject(CategoryListView.Items[i].Data) is TCategory then
158     if TCategory(CategoryListView.Items[i].Data) = Category then begin
159     CategoryListView.Items[i].Selected := True;
160     CategoryListView.Items[i].MakeVisible(False);
161     end;
162     end;
163 yoffy 1.8 AllSelectButtonClick( nil );
164 hi_ 1.1 end else if Item is TBoard then begin
165     Board := TBoard(Item);
166     Category := Board.ParentCategory;
167     Board.BoolData := True;
168     for i := 0 to CategoryListView.Items.Count - 1 do begin
169     if TObject(CategoryListView.Items[i].Data) is TCategory then begin
170     if TCategory(CategoryListView.Items[i].Data) = Category then begin
171     CategoryListView.Items[i].Selected := True;
172     CategoryListView.Items[i].MakeVisible(False);
173     end;
174     end;
175     end;
176 yoffy 1.8 end else begin
177     // 鐃?(鐃緒申鐃緒申鐃緒申)鐃?鐃緒申鐃?鐃?鐃?鐃?
178     CategoryListView.Items[0].Selected := True;
179     CategoryListView.Items[0].MakeVisible(False);
180     AllSelectButtonClick( nil );
181 hi_ 1.1 end;
182     end;
183    
184     procedure TSearchDialog.BoardListViewChange(Sender: TObject;
185     Item: TListItem; Change: TItemChange);
186     var
187     Board: TBoard;
188     begin
189     if TObject(Item.Data) is TBoard then begin
190     Board := TBoard(Item.Data);
191     Board.BoolData := Item.Checked;
192     end;
193     end;
194    
195     procedure TSearchDialog.AllSelectButtonClick(Sender: TObject);
196     var
197     i: Integer;
198 h677 1.2 //Board: TBoard;
199 hi_ 1.1 begin
200     for i := 0 to BoardListView.Items.Count - 1 do begin
201     if TObject(BoardListView.Items[i].Data) is TBoard then begin
202 h677 1.2 //Board := TBoard(BoardListView.Items[i].Data);
203 hi_ 1.1 BoardListView.Items[i].Checked := True;
204     end;
205     end;
206     end;
207    
208     procedure TSearchDialog.AllReleaseButtonClick(Sender: TObject);
209     var
210     i: Integer;
211 h677 1.2 //Board: TBoard;
212 hi_ 1.1 begin
213     for i := 0 to BoardListView.Items.Count - 1 do begin
214     if TObject(BoardListView.Items[i].Data) is TBoard then begin
215 h677 1.2 //Board := TBoard(BoardListView.Items[i].Data);
216 hi_ 1.1 BoardListView.Items[i].Checked := False;
217     end;
218     end;
219     end;
220    
221 yoffy 1.3 procedure TSearchDialog.OnMatch(Sender: TObject; LineInfo: RE_LineInfo_t);
222     begin
223    
224 yoffy 1.8 // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
225     BoardListView.AddItem( FRegItem.Title, FRegItem );
226     // 鐃緒申鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
227     TGrep( Sender ).Cancel := True;
228 yoffy 1.3
229     end;
230    
231 hi_ 1.1 procedure TSearchDialog.OkBottonClick(Sender: TObject);
232     var
233 h677 1.18 i : Integer;
234     // i, j, k, l: Integer;
235     // Category: TCategory;
236     // Board: TBoard;
237     // ThreadItem: TThreadItem;
238 hi_ 1.1 List: TList;
239 yoffy 1.3 //sl: TStringList;
240 yoffy 1.8 SearchWord: string;
241     Reg: TGrep;
242     Filter: string;
243 h677 1.12 oldText: string;
244 h677 1.18 // bbs : TBBS;
245 hi_ 1.1 begin
246 yoffy 1.8 // grep 鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
247     AllSelectButton.Enabled := False;
248     AllReleaseButton.Enabled := False;
249     OkBotton.Enabled := False;
250 yoffy 1.14 CancelBotton.Enabled := true;
251 h677 1.12 FCancel := false;
252 yoffy 1.8 CategoryListView.Enabled := False;
253 yoffy 1.5
254 hi_ 1.1 Screen.Cursor := crHourglass;
255 yoffy 1.3 //sl := TStringList.Create;
256 hi_ 1.1 List := TList.Create;
257 yoffy 1.5
258 yoffy 1.8 Reg := TGrep.Create( nil );
259 hi_ 1.1 try
260 h677 1.18 // 鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
261     BoardsProgressBar.Max := CountBoards;
262     BoardsProgressBar.Position := 0;
263     BoardsProgressBar.Visible := True;
264    
265 yoffy 1.10 if Length( SearchComboBox.Text ) > 0 then
266     begin
267 h677 1.12 // ComboBox 鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?
268 yoffy 1.10 oldText := SearchComboBox.Text;
269     i := GikoSys.Setting.SelectTextList.IndexOf( oldText );
270     if i <> -1 then
271     GikoSys.Setting.SelectTextList.Delete( i );
272     i := SearchComboBox.Items.IndexOf( oldText );
273     if i <> -1 then
274     SearchComboBox.Items.Delete( i );
275     GikoSys.Setting.SelectTextList.Insert( 0, oldText );
276     SearchComboBox.Items.Insert( 0, oldText );
277     SearchComboBox.Text := oldText;
278    
279 h677 1.12 BoardListView.Clear;
280 h677 1.18 Application.ProcessMessages;
281 h677 1.12 // grep 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申
282     Reg.OnMatch := OnMatch;
283 h677 1.17 Reg.UseFuzzyCharDic := FuzzyCharDicCheckBox.Checked;
284 h677 1.12
285     If RegExpCheckBox.Checked Then
286     SearchWord := SearchComboBox.Text
287     Else
288     SearchWord := RegExpEncode( SearchComboBox.Text );
289    
290     If NameCheckBox.Checked And
291     MailCheckBox.Checked And
292     IDCheckBox.Checked And
293     SentenceCheckBox.Checked Then
294     Begin
295     // 鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申
296     // (鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申)
297     Reg.RegExp := SearchWord;
298     End Else Begin
299     If NameCheckBox.Checked Then
300     Filter := '.*' + SearchWord + '.*<>'
301     Else
302     Filter := '.*<>';
303     If MailCheckBox.Checked Then
304     Filter := Filter + '.*' + SearchWord + '.*<>'
305     Else
306     Filter := Filter + '.*<>';
307     If IDCheckBox.Checked Then
308     Filter := Filter + '.*' + SearchWord + '.*<>'
309     Else
310     Filter := Filter + '.*<>';
311     If SentenceCheckBox.Checked Then
312     Filter := Filter + '.*' + SearchWord + '.*<>\n'
313     Else
314     Filter := Filter + '.*<>\n';
315    
316     Reg.RegExp := Filter;
317     End;
318    
319     // 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
320 h677 1.18 SearchLogs(Reg);
321 hi_ 1.1 end;
322     finally
323 h677 1.18 //鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃?鐃緒申鐃?鐃緒申
324     BoardsProgressBar.Visible := False;
325 yoffy 1.3 //sl.Free;
326 hi_ 1.1 List.Free;
327     Screen.Cursor := crDefault;
328 yoffy 1.8 Reg.Free;
329 yoffy 1.5
330 yoffy 1.8 // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申
331     AllSelectButton.Enabled := True;
332     AllReleaseButton.Enabled := True;
333     OkBotton.Enabled := True;
334     CategoryListView.Enabled := True;
335 yoffy 1.14 CancelBotton.Enabled := false;
336     end;
337 hi_ 1.1 end;
338 h677 1.18 //! 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
339     procedure TSearchDialog.SearchLogs( Reg: TGrep );
340     var
341     i, j, k, l : Integer;
342     bbs : TBBS;
343     Category: TCategory;
344     Board: TBoard;
345     begin
346     // 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
347     try
348     // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
349     for l := 0 to Length( BBSs ) - 1 do begin
350     bbs := BBSs[ l ];
351     for i := 0 to bbs.Count - 1 do begin
352     // 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
353     Category := bbs.Items[i];
354     for j := 0 to Category.Count - 1 do begin
355     // 鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
356     Board := Category.Items[j];
357     if Board.BoolData then begin
358     if not Board.IsThreadDatRead then
359     GikoSys.ReadSubjectFile(Board);
360     for k := 0 to Board.Count - 1 do begin
361     // 鐃緒申鐃?鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申 (鐃緒申鐃緒申)
362     SearchLog(Reg, Board.Items[k]);
363     end;
364     BoardsProgressBar.StepIt;
365     end;
366 hi_ 1.1
367 h677 1.18 end;
368     end;
369     end;
370     except
371     on E:Exception do ShowMessage(E.Message)
372     end;
373     end;
374     //! 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?鐃緒申鐃?鐃緒申鐃緒申
375     function TSearchDialog.CountBoards : Integer;
376     var
377     i, j, l : Integer;
378     bbs : TBBS;
379     Category: TCategory;
380     Board: TBoard;
381     begin
382     Result := 0;
383     // 鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
384     for l := 0 to Length( BBSs ) - 1 do begin
385     bbs := BBSs[ l ];
386     for i := 0 to bbs.Count - 1 do begin
387     // 鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
388     Category := bbs.Items[i];
389     for j := 0 to Category.Count - 1 do begin
390     // 鐃緒申鐃緒申鐃緒申鐃緒申 (鐃緒申鐃緒申)
391     Board := Category.Items[j];
392     if Board.BoolData then begin
393     Inc(Result);
394     end;
395     end;
396     end;
397     end;
398     end;
399     //! 鐃緒申鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃?鐃?鐃緒申鐃緒申鐃?鐃?鐃?鐃?鐃緒申鐃緒申鐃緒申鐃緒申
400     procedure TSearchDialog.SearchLog(Reg: TGrep; Item: TThreadItem);
401     begin
402     // 鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃?
403     if (Item.IsLogFile) and (FileExists( Item.GetThreadFileName )) then begin
404     try
405     // 鐃緒申鐃緒申
406     // 鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申 OnMatch 鐃緒申鐃緒申鐃緒申
407     FRegItem := Item;
408     // GrepByReg鐃緒申鐃緒申鐃緒申Application.ProcessMessage鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申鐃緒申
409     Reg.GrepByRegExp( Item.GetThreadFileName )
410     except
411     end;
412     if FCancel then raise Exception.Create('鐃緒申鐃?鐃緒申鐃緒申鐃緒申鐃緒申鐃?鐃緒申鐃緒申鐃緒申');
413     end;
414     end;
415 yoffy 1.3 procedure TSearchDialog.BoardListViewDblClick(Sender: TObject);
416     begin
417    
418 yoffy 1.8 If TObject( BoardListView.Selected.Data ) is TThreadItem Then
419     GikoForm.InsertBrowserTab( TThreadItem(BoardListView.Selected.Data) );
420 yoffy 1.7
421 h677 1.18 BringToFront;
422 yoffy 1.7 end;
423    
424     procedure TSearchDialog.CancelBottonClick(Sender: TObject);
425     begin
426 h677 1.17 TGrep(Sender).Cancel := true;
427 yoffy 1.14 FCancel := true;
428 yoffy 1.7 end;
429    
430     procedure TSearchDialog.BoardListViewResize(Sender: TObject);
431     begin
432    
433 yoffy 1.8 BoardListView.Column[ 0 ].Width := BoardListView.ClientWidth;
434 yoffy 1.3
435     end;
436 hi_ 1.1
437 h677 1.18 procedure TSearchDialog.FormDestroy(Sender: TObject);
438     begin
439     if (BoardListView <> nil) then begin
440     BoardListView.Clear;
441     end;
442     if (CategoryListView <> nil) then begin
443     CategoryListView.Clear;
444     end;
445     end;
446    
447 h677 1.19 procedure TSearchDialog.FormCloseQuery(Sender: TObject;
448     var CanClose: Boolean);
449     begin
450     if (BoardsProgressBar.Visible) then begin
451     TGrep(Sender).Cancel := true;
452     FCancel := true;
453     Application.ProcessMessages;
454     end;
455     end;
456    
457 hi_ 1.1 end.

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26