{ Private \90é\8c¾ }
FChkItem: TObject;
FRegItem: TThreadItem;
+ FCancel: Boolean;
procedure SetCategoryList;
procedure SetBoardList(Item: TListItem);
procedure CheckItem(Item: TObject);
begin
inherited Create(AOwner);
FChkItem := ChkItem;
+ FCancel := false;
end;
procedure TSearchDialog.FormCreate(Sender: TObject);
SearchWord: string;
Reg: TGrep;
Filter: string;
- oldText: string;
+ oldText: string;
begin
-
// grep \93à\82Å\83C\83x\83\93\83g\82ª\8fE\82¦\82Ä\82µ\82Ü\82¤\82Ì\82Å\81A\91\80\8dì\82Å\82«\82È\82¢\82æ\82¤\82É\82·\82é
AllSelectButton.Enabled := False;
AllReleaseButton.Enabled := False;
OkBotton.Enabled := False;
- CancelBotton.Enabled := False;
+ CancelBotton.Enabled := true;
+ FCancel := false;
CategoryListView.Enabled := False;
Screen.Cursor := crHourglass;
try
if Length( SearchComboBox.Text ) > 0 then
begin
- // ComboBox \82Ì\93à\97e\82ð\8dX\90V
+ // ComboBox \82Ì\93à\97e\82ð\8dX\90V
oldText := SearchComboBox.Text;
i := GikoSys.Setting.SelectTextList.IndexOf( oldText );
if i <> -1 then
SearchComboBox.Items.Insert( 0, oldText );
SearchComboBox.Text := oldText;
- BoardListView.Clear;
-
- // grep \97p\82Ì\8c\9f\8dõ\83\8f\81[\83h\82ð\90¶\90¬
- Reg.OnMatch := OnMatch;
- Reg.UseFuzzyCharDic := True;
-
- If RegExpCheckBox.Checked Then
- SearchWord := SearchComboBox.Text
- Else
- SearchWord := RegExpEncode( SearchComboBox.Text );
-
- If NameCheckBox.Checked And
- MailCheckBox.Checked And
- IDCheckBox.Checked And
- SentenceCheckBox.Checked Then
- Begin
- // \91S\82Ä\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8fê\8d\87\82Í\90³\8bK\95\\8c»\82ð\8bÉ\97Í\8eg\82í\82È\82¢
- // (\90³\8bK\95\\8c»\82ð\8eg\82¤\82Æ\82©\82È\82è\92x\82¢\82Ì\82Å)
- Reg.RegExp := SearchWord;
- End Else Begin
- If NameCheckBox.Checked Then
- Filter := '.*' + SearchWord + '.*<>'
- Else
- Filter := '.*<>';
- If MailCheckBox.Checked Then
- Filter := Filter + '.*' + SearchWord + '.*<>'
- Else
- Filter := Filter + '.*<>';
- If IDCheckBox.Checked Then
- Filter := Filter + '.*' + SearchWord + '.*<>'
- Else
- Filter := Filter + '.*<>';
- If SentenceCheckBox.Checked Then
- Filter := Filter + '.*' + SearchWord + '.*<>\n'
- Else
- Filter := Filter + '.*<>\n';
-
- Reg.RegExp := Filter;
- End;
-
- // \83T\83C\83g\82Ì\92\86\82Ì (\91±\82)
- for i := 0 to BBS2ch.Count - 1 do begin
- // \83J\83e\83S\83\8a\82Ì\92\86\82Ì (\91±\82)
- Category := BBS2ch.Items[i];
- for j := 0 to Category.Count - 1 do begin
- // \94Â\82Ì\92\86\82Ì (\91±\82)
- Board := Category.Items[j];
- if not Board.IsThreadDatRead then
- GikoSys.ReadSubjectFile(Board);
- for k := 0 to Board.Count - 1 do begin
- // \8cÂ\81X\82Ì\83X\83\8c\83b\83h\82Ì (\91±\82)
- ThreadItem := Board.Items[k];
- if FileExists( ThreadItem.GetThreadFileName ) then begin
-
- // \83\8d\83O\82ª\91¶\8dÝ\82·\82é
- try
-
- // \8c\9f\8dõ
- // \81¦\8c©\82Â\82©\82Á\82½\82ç OnMatch \82É\94ò\82Ô
- FRegItem := ThreadItem;
- Reg.GrepByRegExp( ThreadItem.GetThreadFileName )
-
- except
- end;
-
- end;
- end;
- end
- end;
+ BoardListView.Clear;
+
+ // grep \97p\82Ì\8c\9f\8dõ\83\8f\81[\83h\82ð\90¶\90¬
+ Reg.OnMatch := OnMatch;
+ Reg.UseFuzzyCharDic := True;
+
+ If RegExpCheckBox.Checked Then
+ SearchWord := SearchComboBox.Text
+ Else
+ SearchWord := RegExpEncode( SearchComboBox.Text );
+
+ If NameCheckBox.Checked And
+ MailCheckBox.Checked And
+ IDCheckBox.Checked And
+ SentenceCheckBox.Checked Then
+ Begin
+ // \91S\82Ä\83Z\83b\83g\82³\82ê\82Ä\82¢\82é\8fê\8d\87\82Í\90³\8bK\95\\8c»\82ð\8bÉ\97Í\8eg\82í\82È\82¢
+ // (\90³\8bK\95\\8c»\82ð\8eg\82¤\82Æ\82©\82È\82è\92x\82¢\82Ì\82Å)
+ Reg.RegExp := SearchWord;
+ End Else Begin
+ If NameCheckBox.Checked Then
+ Filter := '.*' + SearchWord + '.*<>'
+ Else
+ Filter := '.*<>';
+ If MailCheckBox.Checked Then
+ Filter := Filter + '.*' + SearchWord + '.*<>'
+ Else
+ Filter := Filter + '.*<>';
+ If IDCheckBox.Checked Then
+ Filter := Filter + '.*' + SearchWord + '.*<>'
+ Else
+ Filter := Filter + '.*<>';
+ If SentenceCheckBox.Checked Then
+ Filter := Filter + '.*' + SearchWord + '.*<>\n'
+ Else
+ Filter := Filter + '.*<>\n';
+
+ Reg.RegExp := Filter;
+ End;
+
+ // \83T\83C\83g\82Ì\92\86\82Ì (\91±\82)
+ try
+ for i := 0 to BBS2ch.Count - 1 do begin
+ // \83J\83e\83S\83\8a\82Ì\92\86\82Ì (\91±\82)
+ Category := BBS2ch.Items[i];
+ for j := 0 to Category.Count - 1 do begin
+ // \94Â\82Ì\92\86\82Ì (\91±\82)
+ Board := Category.Items[j];
+ if not Board.IsThreadDatRead then
+ GikoSys.ReadSubjectFile(Board);
+ if Board.BoolData then begin
+ for k := 0 to Board.Count - 1 do begin
+ // \8cÂ\81X\82Ì\83X\83\8c\83b\83h\82Ì (\91±\82)
+ ThreadItem := Board.Items[k];
+ if FileExists( ThreadItem.GetThreadFileName ) then begin
+ // \83\8d\83O\82ª\91¶\8dÝ\82·\82é
+ try
+ // \8c\9f\8dõ
+ // \81¦\8c©\82Â\82©\82Á\82½\82ç OnMatch \82É\94ò\82Ô
+ FRegItem := ThreadItem;
+ Reg.GrepByRegExp( ThreadItem.GetThreadFileName )
+ except
+ end;
+ end;
+ end;
+ Application.ProcessMessages;
+ if FCancel then raise Exception.Create('\83\8d\83O\8c\9f\8dõ\82ð\92\86\8e~\82µ\82Ü\82·');
+ end;
+ end;
+ end;
+ except
+ on E:Exception do ShowMessage(E.Message)
+ end;
end;
finally
//sl.Free;
AllSelectButton.Enabled := True;
AllReleaseButton.Enabled := True;
OkBotton.Enabled := True;
- CancelBotton.Enabled := True;
CategoryListView.Enabled := True;
- end;
-
+ CancelBotton.Enabled := false;
+ end;
end;
procedure TSearchDialog.BoardListViewDblClick(Sender: TObject);
procedure TSearchDialog.CancelBottonClick(Sender: TObject);
begin
- Self.Close;
+ //Self.Close;
+ FCancel := true;
end;