OSDN Git Service

レスの絞込みの表示切替の不具合と、右クリックレスポップアップの不具合と、
authorh677 <h677>
Sun, 23 May 2004 03:28:25 +0000 (03:28 +0000)
committerh677 <h677>
Sun, 23 May 2004 03:28:25 +0000 (03:28 +0000)
タブと表示スレッドがずれる不具合の修正

Giko.dfm
Giko.pas

index 4ff7efa..8871e55 100644 (file)
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -560,7 +560,6 @@ object GikoForm: TGikoForm
           Align = alClient
           BevelOuter = bvNone
           TabOrder = 1
-          OnResize = ThreadPanelResize
           object BrowserPanel: TPanel
             Left = 0
             Top = 46
index 6afea3c..18d5aa9 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -851,7 +851,6 @@ type
     procedure TreeSelectNameCopyExecute(Sender: TObject);
     procedure FavoriteTreeViewMouseUp(Sender: TObject;
       Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
-    procedure ThreadPanelResize(Sender: TObject);
     procedure OnlyAHundredResUpdate(Sender: TObject);
     procedure test1Click(Sender: TObject);
        private
@@ -873,7 +872,6 @@ type
                FBrowserSizeWidth: Integer;
 
 //             FFavorite: TFavorite;
-               FBrowserComplete: Boolean;
                FTabHintIndex: Integer;
                FListStyle: TViewStyle;                         //\83\8a\83X\83g\83A\83C\83R\83\93\83X\83^\83C\83\8b
                FItemNoVisible: Boolean;                        //\83\8a\83X\83g\94Ô\8d\86\95\\8e¦\83t\83\89\83O
@@ -916,7 +914,6 @@ type
                FOldFormWidth           : Integer;                              // \92¼\91O\82Ì\83E\83B\83\93\83h\83E\82Ì\95\9d
                FToolBarSettingSender : TToolBarSettingSenderType;      // \83c\81[\83\8b\83o\81[\90Ý\92è\82ð\83N\83\8a\83b\83N\82µ\82½\83N\81[\83\8b\83o\81[
                FMouseDownPos           : TPoint;                               // \83u\83\89\83E\83U\83^\83u\82Å\83}\83E\83X\82ð\89\9f\82µ\82½\82Æ\82«\82Ì\8dÀ\95W
-               FNewBrowserCount: Integer;
                FBrowsers: TList;
                procedure SetBoardTreeNode( inBBS : TBBS );
                function SetCategoryListItem(ABBS2ch: TBBS): Integer;
@@ -1213,19 +1210,18 @@ begin
        FSearchDialog := nil;
        BrowserNullTab := TBrowserRecord.Create;
        BrowserNullTab.Browser := Browser;
-       FNewBrowserCount := 0;
        FBrowsers := TList.Create;
        for i := 0 to 4 do begin
                newBrowser := TWebBrowser.Create(nil);
                TOleControl(newBrowser).Parent := BrowserPanel;
                TOleControl(newBrowser).Align := alClient;
-               newBrowser.Navigate(BLANK_HTML);
                newBrowser.OnDocumentComplete   := BrowserDocumentComplete;
                newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;
                newBrowser.OnEnter                              := BrowserEnter;
                newBrowser.OnNewWindow2                 := BrowserNewWindow2;
                newBrowser.OnStatusTextChange   := BrowserStatusTextChange;
                newBrowser.OnTitleChange                := BrowserTitleChange;
+               newBrowser.Navigate(BLANK_HTML);
                TOleControl(newBrowser).Visible := false;
                FBrowsers.Add(newBrowser);
        end;
@@ -2487,9 +2483,10 @@ var
 begin
        try
                try
-                       if (FActiveContent <> nil) and (Assigned(TWebBrowser(Sender).Document)) then begin
-                       //      if LowerCase(OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset) <> 'shift_jis' then
-                       //              OleVariant(IHTMLDocument2(TWebBrowser(Sender).Document)).charset := 'shift_jis';
+                       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) and (Assigned(FActiveContent.Browser.Document)) then begin
+                               if LowerCase(OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).charset) <> 'shift_jis' then begin
+                                       OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).charset := 'shift_jis';
+                               end;
                        end;
                except
                end;
@@ -3224,10 +3221,15 @@ begin
                                                for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
                                                        if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[4]) then begin
                                                                TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser := nil;
+                                                               if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent <> nil then begin
+                                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent.Free;
+                                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent := nil;
+                                                               end;
                                                                break;
                                                        end;
                                                end;
                                                TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser := TWebBrowser(FBrowsers[4]);
+                        TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
                                                FBrowsers.Move(4, 0);
                                        end;
                                        if ActiveTab then begin
@@ -3245,6 +3247,10 @@ begin
                        for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
                                if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[4]) then begin
                                        TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser := nil;
+                                       if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent <> nil then begin
+                                               TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent.Free;
+                                               TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent := nil;
+                                       end;
                                        break;
                                end;
                        end;
@@ -3264,6 +3270,10 @@ begin
                        for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
                                if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[4]) then begin
                                        TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser := nil;
+                                       if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent <> nil then begin
+                                               TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent.Free;
+                                               TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent := nil;
+                                       end;
                                        break;
                                end;
                        end;
@@ -3308,6 +3318,7 @@ var
        s: string;
 //     OldCursor: TCursor;
        i: Integer;
+       url: OleVariant;
 begin
        if (FActiveContent <> nil) and
                (FActiveContent.Thread <> inThread.Thread) and
@@ -3332,6 +3343,10 @@ begin
                for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
                        if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser = TWebBrowser(FBrowsers[4]) then begin
                                TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser := nil;
+                               if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent <> nil then begin
+                                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent.Free;
+                                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent := nil;
+                               end;
                                break;
                        end;
                end;
@@ -3375,7 +3390,8 @@ begin
                end;
                LockWindowUpdate(Self.Handle);
                TOleControl(inThread.FBrowser).Visible := true; //\82±\82±\82Å\95\\8e¦\82µ\82Ä\82¨\82©\82È\82¢\82Æ\95`\89æ\82Å\8e~\82Ü\82é
-        TOleControl(inThread.FBrowser).BringToFront;
+               TOleControl(inThread.FBrowser).BringToFront;
+               LockWindowUpdate(0);
                if not inThread.FThread.IsLogFile then begin
 
                        if (not Assigned(inThread.Browser.Document)) then begin
@@ -3402,6 +3418,7 @@ begin
                                try
                                        doc := Idispatch( olevariant(inThread.Browser.ControlInterface).Document) as IHTMLDocument2;
                                        GikoSys.CreateHTML2(doc, inThread.FThread, sTitle);
+                    inThread.FBrowser.OnDocumentComplete(inThread.FBrowser, inThread.FBrowser.Parent, url);
                                        inThread.OnlyHundred := GikoSys.OnlyAHundredRes;
                                        Application.ProcessMessages;
                                        //\82±\82±\82ÅApplication.ProcessMessages\82ð\8cÄ\82Ô\82±\82Æ\82É\82æ\82Á\82ÄWebBrowser\82ð\8dX\90V\82³\82¹\82é\81B
@@ -3425,7 +3442,7 @@ begin
                        inThread.FThread.UnRead := False;
                        ListView.Refresh;
                end;
-               LockWindowUpdate(0);
+//             LockWindowUpdate(0);
                if(FActiveContent <> nil) and (FActiveContent <> inThread) then begin
                        if (FActiveContent.Browser <> BrowserNullTab.Browser) and
                                (TOleControl(FActiveContent.Browser).Visible) then
@@ -5254,6 +5271,10 @@ begin
                                                 = TWebBrowser(FBrowsers[4]) )then
                                        begin
                                                TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser := nil;
+                                               if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent <> nil then begin
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent.Free;
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent := nil;
+                                               end;
                                                break;
                                        end;
                                end;
@@ -5307,6 +5328,10 @@ begin
                                                 = TWebBrowser(FBrowsers[4]) )then
                                        begin
                                                TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser := nil;
+                                               if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent <> nil then begin
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent.Free;
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[j]).FEvent := nil;
+                                               end;
                                                break;
                                        end;
                                end;
@@ -5894,8 +5919,13 @@ begin
                                        FBrowsers.Move(j ,0);
                        end else begin
                                for i := 0 to BrowserTab.Tabs.Count - 1 do begin
-                                       if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[4]) then
+                                       if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[4]) then begin
                                                TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser := nil;
+                                               if TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent <> nil then begin
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent.Free;
+                                                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).FEvent := nil;
+                                               end;
+                                       end;
                                end;
                                TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser := TWebBrowser(FBrowsers[4]);
                 TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Repaint := true;
@@ -5946,29 +5976,11 @@ begin
                p2 := p;
                p := BrowserTab.ScreenToClient(p);
                idx := BrowserTab.IndexOfTabAt(p.X, p.Y);
-               if idx <> -1 then begin
-                       OldIndex := BrowserTab.TabIndex;
+               if idx <> -1 then
                        DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));
-                       {if idx = OldIndex then begin
-                               if BrowserTab.Tabs.Count > idx then
-                                       BrowserTab.TabIndex := idx
-                               else if BrowserTab.Tabs.Count = idx then
-                                       BrowserTab.TabIndex := idx - 1
-                               else if BrowserTab.Tabs.Count > 0 then
-                                       BrowserTab.TabIndex := 0;
-                               if TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil then begin
-                                       TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser
-                                                       := TWebBrowser(FBrowsers[4]);
-                                       FBrowsers.Move(4, 0);
-                               end;
-                               BrowserTab.OnChange(nil);
-
-                       end;
-                       }
-               end;
        //end else if Button = mbRight then begin
        //PopupMenu\82ÅBrowserTabPoupMenu\82ð\8ew\92è\82µ\82Ä\82¢\82é\82Ì\82Å\82±\82±\82Å\82í\82´\82í\82´\8cÄ\82Ñ\8fo\82·\82Æ\82Q\8fd\82É\82È\82é
-    //OnContextPopup\82Å\82à\82µ\82àActive\82ÈTab\88È\8aO\82Å\8cÄ\82Ñ\8fo\82³\82ê\82½\82çTab\82ð\90Ø\82è\91Ö\82¦\82é\82æ\82¤\82É\82µ\82½\81B
+       //OnContextPopup\82Å\82à\82µ\82àActive\82ÈTab\88È\8aO\82Å\8cÄ\82Ñ\8fo\82³\82ê\82½\82çTab\82ð\90Ø\82è\91Ö\82¦\82é\82æ\82¤\82É\82µ\82½\81B
 {              // \83}\83E\83X\89E\83{\83^\83\93
                GetCursorPos(p);
                p2 := p;
@@ -6119,7 +6131,6 @@ begin
                        end;
                end;
                if BrowserRecord <> nil then begin
-                       FBrowserComplete := True;
                        if BrowserRecord.FEvent <> nil then
                                BrowserRecord.FEvent.Free;
                        FDispHtmlDocument := Idispatch(OleVariant(BrowserRecord.Browser.ControlInterface).Document) as DispHTMLDocument;
@@ -7362,7 +7373,7 @@ var
        Num: Integer;
        ThreadItem: TThreadItem;
 begin
-       Doc := Browser.Document as IHtmlDocument2;
+       Doc := FactiveContent.FBrowser.Document as IHtmlDocument2;
        Range := Doc.selection.createRange as IHTMLTxtRange;
        s := CustomStringReplace(Range.text, '\81@', ' ');//\91S\8ap\8bó\94\92\82ð\94¼\8ap\8bó\94\92\82É
        s := ZenToHan(Trim(s));
@@ -8348,7 +8359,7 @@ var
        Dlg: TListSelectDialog;
        ThreadItem : TThreadItem;
        FilterList : TStringList;
-       idx : Integer;
+       i, idx : Integer;
 begin
        Dlg := TListSelectDialog.Create(Self);
        try
@@ -8395,7 +8406,9 @@ begin
                                end;
 
                                // \83X\83\8c\83b\83h\82Ì\8dÄ\95`\89æ
-                FActiveContent.Repaint := true;
+                               for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
+                    TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
+                               end;
                                ThreadItem := GetActiveContent;
                                if ThreadItem <> nil then
                                        InsertBrowserTab( ThreadItem, True );
@@ -8426,6 +8439,7 @@ procedure TGikoForm.AllResActionExecute(Sender: TObject);
 var
        ThreadItem : TThreadItem;
        FilterList : TStringList;
+       i: Integer;
 begin
        // \83{\83^\83\93\82Ì\8dX\90V
        AllResAction.Checked := True;
@@ -8444,7 +8458,9 @@ begin
                FSelectResWord := '';
 
                // \83X\83\8c\83b\83h\82ð\8dÄ\95`\89æ
-        FActiveContent.Repaint := true;
+               for i := BrowserTab.Tabs.Count - 1 downto 0 do begin
+                       TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
+               end;
                ThreadItem := GetActiveContent;
                if ThreadItem <> nil then
                        InsertBrowserTab( ThreadItem, True );
@@ -9920,11 +9936,13 @@ begin
                Result := True;
        end else begin
                // \82»\82ê\88È\8aO\82Ì\83C\83x\83\93\83g\82Í Browser \82É\97¬\82·
-               Dispatch := Browser.Application;
-               if Dispatch <> nil then begin
-                       Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO );
-                       if iOIPAO <> nil then
-                               iOIPAO.TranslateAccelerator( Msg );
+               if(FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
+                       Dispatch := FActiveContent.Browser.Application;
+                       if Dispatch <> nil then begin
+                               Dispatch.QueryInterface( IOleInPlaceActiveObject, iOIPAO );
+                               if iOIPAO <> nil then
+                                       iOIPAO.TranslateAccelerator( Msg );
+                       end;
                end;
 
                // \83M\83R\83i\83r\82Å\8eg\82¤\83V\83\87\81[\83g\83J\83b\83g\82Í\8eó\82¯\8eæ\82è\82½\82¢\82Ì\82Å\83C\83x\83\93\83g\82Í\83J\83b\83g\82µ\82È\82¢
@@ -9941,19 +9959,24 @@ begin
 
        case Msg.message of
        WM_KEYDOWN:
-               if IsDialogMessage( Browser.Handle, Msg ) then begin
-                       key := Msg.wParam;
-                       Handled := BrowserKeyDown( Msg, key, KeyDataToShiftState( Msg.lParam ) );
+               if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
+                       if IsDialogMessage( FActiveContent.Browser.Handle, Msg ) then begin
+                               key := Msg.wParam;
+                               Handled := BrowserKeyDown( Msg, key, KeyDataToShiftState( Msg.lParam ) );
+                       end;
                end;
+
        WM_XBUTTONDOWN:
                case Msg.wParam shr 16 of
                XBUTTON1:
-                       if IsDialogMessage( Browser.Handle, Msg ) then begin
-                               UpBoardAction.Execute;
-                               Handled := True;
-                       end else if IsDialogMessage( ListView.Handle, Msg ) then begin
-                               UpFolderAction.Execute;
-                               Handled := True;
+                       if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) then begin
+                               if IsDialogMessage( FActiveContent.Browser.Handle, Msg ) then begin
+                                       UpBoardAction.Execute;
+                                       Handled := True;
+                               end else if IsDialogMessage( ListView.Handle, Msg ) then begin
+                                       UpFolderAction.Execute;
+                                       Handled := True;
+                               end;
                        end;
                XBUTTON2:
                end;
@@ -10049,21 +10072,6 @@ begin
 
 end;
 
-procedure TGikoForm.ThreadPanelResize(Sender: TObject);
-var
-       idx     : Integer;
-       rec     : TBrowserRecord;
-begin
-{      idx := BrowserTab.TabIndex;
-       if idx >= 0 then begin
-               if BrowserTab.Tabs.Objects[ idx ] is TBrowserRecord then begin
-                       rec := TBrowserRecord( BrowserTab.Tabs.Objects[ idx ] );
-                       SetWindowPos( rec.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER);
-               end;
-       end;
-}
-end;
-
 procedure TGikoForm.OnlyAHundredResUpdate(Sender: TObject);
 begin
        OnlyAHundredRes.Enabled := (GetActiveContent <> nil) and (GetActiveContent.IsLogFile);