From 9609cb09a789aae8ecbccf7bba772d62379964e0 Mon Sep 17 00:00:00 2001 From: h677 Date: Sun, 23 May 2004 03:28:25 +0000 Subject: [PATCH] =?utf8?q?=E3=83=AC=E3=82=B9=E3=81=AE=E7=B5=9E=E8=BE=BC?= =?utf8?q?=E3=81=BF=E3=81=AE=E8=A1=A8=E7=A4=BA=E5=88=87=E6=9B=BF=E3=81=AE?= =?utf8?q?=E4=B8=8D=E5=85=B7=E5=90=88=E3=81=A8=E3=80=81=E5=8F=B3=E3=82=AF?= =?utf8?q?=E3=83=AA=E3=83=83=E3=82=AF=E3=83=AC=E3=82=B9=E3=83=9D=E3=83=83?= =?utf8?q?=E3=83=97=E3=82=A2=E3=83=83=E3=83=97=E3=81=AE=E4=B8=8D=E5=85=B7?= =?utf8?q?=E5=90=88=E3=81=A8=E3=80=81=20=E3=82=BF=E3=83=96=E3=81=A8?= =?utf8?q?=E8=A1=A8=E7=A4=BA=E3=82=B9=E3=83=AC=E3=83=83=E3=83=89=E3=81=8C?= =?utf8?q?=E3=81=9A=E3=82=8C=E3=82=8B=E4=B8=8D=E5=85=B7=E5=90=88=E3=81=AE?= =?utf8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Giko.dfm | 1 - Giko.pas | 138 +++++++++++++++++++++++++++++++++------------------------------ 2 files changed, 73 insertions(+), 66 deletions(-) diff --git a/Giko.dfm b/Giko.dfm index 4ff7efa..8871e55 100644 --- 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 diff --git a/Giko.pas b/Giko.pas index 6afea3c..18d5aa9 100644 --- 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; //ƒŠƒXƒgƒAƒCƒRƒ“ƒXƒ^ƒCƒ‹ FItemNoVisible: Boolean; //ƒŠƒXƒg”ԍ†•\Ž¦ƒtƒ‰ƒO @@ -916,7 +914,6 @@ type FOldFormWidth : Integer; // ’¼‘O‚̃EƒBƒ“ƒhƒE‚Ì• FToolBarSettingSender : TToolBarSettingSenderType; // ƒc[ƒ‹ƒo[Ý’è‚ðƒNƒŠƒbƒN‚µ‚½ƒN[ƒ‹ƒo[ FMouseDownPos : TPoint; // ƒuƒ‰ƒEƒUƒ^ƒu‚Ń}ƒEƒX‚ð‰Ÿ‚µ‚½‚Æ‚«‚̍À•W - 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; //‚±‚±‚Å•\Ž¦‚µ‚Ä‚¨‚©‚È‚¢‚Æ•`‰æ‚ÅŽ~‚Ü‚é - 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; //‚±‚±‚ÅApplication.ProcessMessages‚ðŒÄ‚Ô‚±‚Æ‚É‚æ‚Á‚ÄWebBrowser‚ðXV‚³‚¹‚éB @@ -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‚ÅBrowserTabPoupMenu‚ðŽw’肵‚Ä‚¢‚é‚Ì‚Å‚±‚±‚Å‚í‚´‚í‚´ŒÄ‚яo‚·‚Æ‚Qd‚É‚È‚é - //OnContextPopup‚Å‚à‚µ‚àActive‚ÈTabˆÈŠO‚ŌĂяo‚³‚ꂽ‚çTab‚ðØ‚è‘Ö‚¦‚é‚悤‚É‚µ‚½B + //OnContextPopup‚Å‚à‚µ‚àActive‚ÈTabˆÈŠO‚ŌĂяo‚³‚ꂽ‚çTab‚ðØ‚è‘Ö‚¦‚é‚悤‚É‚µ‚½B { // ƒ}ƒEƒX‰Eƒ{ƒ^ƒ“ 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, '@', ' ');//‘SŠp‹ó”’‚𔼊p‹ó”’‚É 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; // ƒXƒŒƒbƒh‚̍ĕ`‰æ - 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 // ƒ{ƒ^ƒ“‚̍XV AllResAction.Checked := True; @@ -8444,7 +8458,9 @@ begin FSelectResWord := ''; // ƒXƒŒƒbƒh‚ðÄ•`‰æ - 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 // ‚»‚êˆÈŠO‚̃Cƒxƒ“ƒg‚Í Browser ‚É—¬‚· - 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; // ƒMƒRƒiƒr‚ÅŽg‚¤ƒVƒ‡[ƒgƒJƒbƒg‚͎󂯎æ‚肽‚¢‚̂ŃCƒxƒ“ƒg‚̓Jƒbƒg‚µ‚È‚¢ @@ -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); -- 2.11.0