OSDN Git Service

・[キャンセル] ボタンが機能するようになった。
authoryoffy <yoffy>
Sun, 21 Sep 2003 05:19:30 +0000 (05:19 +0000)
committeryoffy <yoffy>
Sun, 21 Sep 2003 05:19:30 +0000 (05:19 +0000)
・ウィンドウサイズを変えても BoardListView のカラム幅がそのままになっていたバグを修正。
・検索ループ中に検索ワードを毎回設定しまっていたので、ループの外で 1 回だけ設定するように修正。

Search.dfm
Search.pas

index 95ea9b4..9743d29 100644 (file)
@@ -56,6 +56,7 @@ object SearchDialog: TSearchDialog
     ViewStyle = vsReport
     OnChange = BoardListViewChange
     OnDblClick = BoardListViewDblClick
+    OnResize = BoardListViewResize
   end
   object OkBotton: TButton
     Left = 248
@@ -78,6 +79,7 @@ object SearchDialog: TSearchDialog
     Caption = #12461#12515#12531#12475#12523
     ModalResult = 2
     TabOrder = 5
+    OnClick = CancelBottonClick
   end
   object SearchComboBox: TComboBox
     Left = 96
index a7a68d9..09b9f92 100644 (file)
@@ -32,6 +32,8 @@ type
                procedure AllReleaseButtonClick(Sender: TObject);
                procedure OkBottonClick(Sender: TObject);
     procedure BoardListViewDblClick(Sender: TObject);
+    procedure CancelBottonClick(Sender: TObject);
+    procedure BoardListViewResize(Sender: TObject);
        private
                { Private \90é\8c¾ }
                FChkItem: TObject;
@@ -229,8 +231,43 @@ begin
        //sl := TStringList.Create;
        List := TList.Create;
 
+  Reg := TGrep.Create( nil );
        try
                BoardListView.Clear;
+
+    // grep \97p\82Ì\8c\9f\8dõ\83\8f\81[\83h\82ð\90\90¬
+    Reg.OnMatch := OnMatch;
+    Reg.UseFuzzyCharDic := True;
+
+    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 := SearchComboBox.Text;
+    End Else Begin
+      If NameCheckBox.Checked Then
+        Filter := '.*' + SearchComboBox.Text + '.*<>'
+      Else
+        Filter := '.*<>';
+      If MailCheckBox.Checked Then
+        Filter := Filter + '.*' + SearchComboBox.Text + '.*<>'
+      Else
+        Filter := Filter + '.*<>';
+      If IDCheckBox.Checked Then
+        Filter := Filter + '.*' + SearchComboBox.Text + '.*<>'
+      Else
+        Filter := Filter + '.*<>';
+      If SentenceCheckBox.Checked Then
+        Filter := Filter + '.*' + SearchComboBox.Text + '.*<>\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­)
@@ -246,55 +283,14 @@ begin
           if FileExists( ThreadItem.GetThreadFileName ) then begin
 
             // \83\8d\83O\82ª\91\8dÝ\82·\82é
-            Reg := TGrep.Create( nil );
             try
-              Reg.OnMatch := OnMatch;
-              Reg.UseFuzzyCharDic := True;
+
+              // \8c\9f\8dõ
+              // \81¦\8c©\82Â\82©\82Á\82½\82ç OnMatch \82É\94ò\82Ô
               FRegItem := ThreadItem;
+              Reg.GrepByRegExp( ThreadItem.GetThreadFileName )
 
-              // grep \97p\82Ì\8c\9f\8dõ\83\8f\81[\83h\82ð\90\90¬
-              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 := SearchComboBox.Text;
-                try
-                  Reg.GrepByRegExp( ThreadItem.GetThreadFileName )
-                except
-                end;
-              End Else Begin
-                If NameCheckBox.Checked Then
-                  Filter := '.*' + SearchComboBox.Text + '.*<>'
-                Else
-                  Filter := '.*<>';
-                If MailCheckBox.Checked Then
-                  Filter := Filter + '.*' + SearchComboBox.Text + '.*<>'
-                Else
-                  Filter := Filter + '.*<>';
-                If IDCheckBox.Checked Then
-                  Filter := Filter + '.*' + SearchComboBox.Text + '.*<>'
-                Else
-                  Filter := Filter + '.*<>';
-                If SentenceCheckBox.Checked Then
-                  Filter := Filter + '.*' + SearchComboBox.Text + '.*<>\n'
-                Else
-                  Filter := Filter + '.*<>\n';
-
-                Reg.RegExp := Filter;
-
-                // \8c\9f\8dõ
-                // \81¦\8c©\82Â\82©\82Á\82½\82ç OnMatch \82É\94ò\82Ô
-                try
-                  Reg.GrepByRegExp( ThreadItem.GetThreadFileName )
-                except
-                end;
-              End;
-
-            finally
-              Reg.Destroy;
+            except
             end;
 
                                        end;
@@ -305,6 +301,7 @@ begin
                //sl.Free;
                List.Free;
                Screen.Cursor := crDefault;
+    Reg.Free;
 
     // \91\80\8dì\82Å\82«\82é\82æ\82¤\82É\8aJ\95ú
     AllSelectButton.Enabled := True;
@@ -324,4 +321,18 @@ begin
 
 end;
 
+procedure TSearchDialog.CancelBottonClick(Sender: TObject);
+begin
+
+  Self.Close;
+
+end;
+
+procedure TSearchDialog.BoardListViewResize(Sender: TObject);
+begin
+
+  BoardListView.Column[ 0 ].Width := BoardListView.ClientWidth;
+
+end;
+
 end.