From: h677 Date: Sun, 23 May 2004 08:17:45 +0000 (+0000) Subject: 巡回とか、お気に入りの全ての開くとかでbrowserの付け替えミスによるAccessViolationの改善 X-Git-Tag: v1_64_1_820~1186 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=b189d9a16ad867d42bc240a5182f071f0b897530;p=gikonavigoeson%2Fgikonavi.git 巡回とか、お気に入りの全ての開くとかでbrowserの付け替えミスによるAccessViolationの改善 名称不明スレッドのDLごタイトルを取得して通知するように変更 --- diff --git a/Giko.pas b/Giko.pas index c73289d..a416405 100644 --- a/Giko.pas +++ b/Giko.pas @@ -2484,6 +2484,10 @@ begin try try if (FActiveContent <> nil) and (FActiveContent.Browser <> nil) and (Assigned(FActiveContent.Browser.Document)) then begin + while (FActiveContent.Browser.ReadyState <> READYSTATE_COMPLETE) and + (FActiveContent.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin + Application.ProcessMessages; + end; if LowerCase(OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).charset) <> 'shift_jis' then begin OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).charset := 'shift_jis'; end; @@ -3056,16 +3060,18 @@ begin boardPlugIn := Item.ThreadItem.BoardPlugIn; Item.ThreadItem.Title := GikoSys.DivideStrLine(boardPlugIn.GetDat( DWORD( Item.ThreadItem ), 1 )).FTitle; ATitle := Item.ThreadItem.Title; + end else if ATitle = 'i–¼Ì•s–¾j' then begin + ATitle := GikoSys.DivideStrLine(GikoSys.ReadThreadFile(Item.ThreadItem.GetThreadFileName, 1)).FTitle; end; for i := BrowserTab.Tabs.Count - 1 downto 0 do begin if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = Item.ThreadItem then - TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true; + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true; end; if GetActiveContent = Item.ThreadItem then InsertBrowserTab(Item.ThreadItem) else if (ListView.Selected <> nil ) and ( TObject(ListView.Selected.Data) is TThreadItem ) and ( Item.ThreadItem = TThreadItem(ListView.Selected.Data)) then - InsertBrowserTab(Item.ThreadItem, True) - else + InsertBrowserTab(Item.ThreadItem, True) + else InsertBrowserTab(Item.ThreadItem, False); if Item.State = gdsComplete then begin @@ -3198,7 +3204,7 @@ end;} procedure TGikoForm.InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True); var - i, j: Integer; + i, j, idx: Integer; favItem : TFavoriteThreadItem; newBrowser : TBrowserRecord; begin @@ -3225,7 +3231,7 @@ begin end; end; TBrowserRecord(BrowserTab.Tabs.Objects[i]).FBrowser := TWebBrowser(FBrowsers[4]); - TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true; + TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true; FBrowsers.Move(4, 0); end; if ActiveTab then begin @@ -3237,7 +3243,15 @@ begin end; end; end; - + idx := BrowserTab.TabIndex; + BrowserTab.Tabs.BeginUpdate; + //‚¨‹C‚É“ü‚è‚Ì‘S‚ÄŠJ‚­‚Æ‚©‚â‚é‚ƁA¡ŠJ‚¢‚Ä‚éƒXƒŒ‚Ìbrowser‚ð•t‚¯‘Ö‚¦‚é‹°‚ꂪ‚ ‚é + //í‚É‚S”Ô–Ú‚ÉActive‚̃uƒ‰ƒEƒU‚ª—ˆ‚È‚¢‚悤‚Ɉړ®‚³‚¹‚é + if (FActiveContent <> nil) and (FActiveContent.FBrowser <> nil) then begin + j := FBrowsers.IndexOf(FActiveContent.FBrowser); + if j = 4 then + FBrowsers.Move(4, 0); + end; if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin newBrowser := TBrowserRecord.Create; for j := BrowserTab.Tabs.Count - 1 downto 0 do begin @@ -3252,10 +3266,11 @@ begin end; newBrowser.Browser := TWebBrowser(FBrowsers[4]); FBrowsers.Move(4, 0); + newBrowser.Browser.Navigate(BLANK_HTML); newBrowser.thread := ThreadItem; newBrowser.Repaint := true; newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; - newBrowser.Browser.Navigate(BLANK_HTML); + BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); if ActiveTab then begin BrowserTab.TabIndex := 0; @@ -3275,16 +3290,18 @@ begin end; newBrowser.Browser := TWebBrowser(FBrowsers[4]); FBrowsers.Move(4, 0); + newBrowser.Browser.Navigate(BLANK_HTML); newBrowser.thread := ThreadItem; newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; newBrowser.Repaint := true; - newBrowser.Browser.Navigate(BLANK_HTML); + i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); if ActiveTab then begin BrowserTab.TabIndex := i; end; end; - if ActiveTab then begin + BrowserTab.Tabs.EndUpdate;; + if(ActiveTab) or (idx = -1) then begin BrowserTab.OnChange(nil); end; end else begin @@ -9160,7 +9177,7 @@ procedure TGikoForm.FavoriteTreeViewBrowseFolderActionExecute( begin FavoriteBrowseFolder( FClickNode ); - BrowserTab.OnChange(nil); + //BrowserTab.OnChange(nil); end;