| 3580 |
browserRec := InsertBrowserTab(Item.ThreadItem, True) |
browserRec := InsertBrowserTab(Item.ThreadItem, True) |
| 3581 |
else |
else |
| 3582 |
browserRec := InsertBrowserTab(Item.ThreadItem, False); |
browserRec := InsertBrowserTab(Item.ThreadItem, False); |
|
if browserRec.Thread = BrowserNullTab.Thread then begin |
|
|
browserRec.Movement := BrowserNullTab.Movement; |
|
|
BrowserNullTab.Movement := ''; |
|
|
end; |
|
| 3583 |
end else begin |
end else begin |
| 3584 |
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
| 3585 |
InsertBrowserTab(Item.ThreadItem); |
InsertBrowserTab(Item.ThreadItem); |
| 3586 |
end; |
end; |
| 3587 |
|
|
| 3588 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 3589 |
|
|
| 3590 |
if Item.State = gdsComplete then begin |
if Item.State = gdsComplete then begin |
| 3591 |
PlaySound('New'); |
PlaySound('New'); |
| 3810 |
newBrowser.thread := ThreadItem; |
newBrowser.thread := ThreadItem; |
| 3811 |
// newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
// newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
| 3812 |
newBrowser.Repaint := true; |
newBrowser.Repaint := true; |
|
|
|
| 3813 |
i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
| 3814 |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin |
if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin |
| 3815 |
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
| 3953 |
Thread.Repaint := false; |
Thread.Repaint := false; |
| 3954 |
|
|
| 3955 |
Thread.Browser.OnStatusTextChange := nil; |
Thread.Browser.OnStatusTextChange := nil; |
| 3956 |
//doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; |
|
| 3957 |
|
|
| 3958 |
//GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
//GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
| 3959 |
HTMLCreater.CreateHTML2(olevariant(Thread.Browser.ControlInterface).Document, ThreadItem, sTitle); |
HTMLCreater.CreateHTML2(olevariant(Thread.Browser.ControlInterface).Document, ThreadItem, sTitle); |
| 3960 |
Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; |
doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; |
| 3961 |
|
//ロードが完了するまで待つ |
| 3962 |
|
while (doc.readyState) <> 'complete' do begin |
| 3963 |
|
Application.ProcessMessages; |
| 3964 |
|
end; |
| 3965 |
if ThreadItem = nil then begin |
if ThreadItem = nil then begin |
| 3966 |
FActiveContent := nil; |
FActiveContent := nil; |
| 3967 |
BrowserTab.Repaint; |
BrowserTab.Repaint; |
| 3968 |
Exit; |
Exit; |
| 3969 |
end; |
end; |
| 3970 |
|
///////////////////////////////////////////////// |
| 3971 |
|
//DocumentCompleteから持ってきた。 |
| 3972 |
|
if Length(Thread.Movement) > 0 then begin |
| 3973 |
|
if ThreadItem.UnRead then begin |
| 3974 |
|
ThreadItem.UnRead := False; |
| 3975 |
|
ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; |
| 3976 |
|
if ThreadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; |
| 3977 |
|
TreeView.Refresh; |
| 3978 |
|
ListView.Refresh; |
| 3979 |
|
end; |
| 3980 |
|
BrowserMovement( Thread.Movement, Thread ); |
| 3981 |
|
Thread.Movement := ''; |
| 3982 |
|
end else |
| 3983 |
|
if ThreadItem.UnRead then begin |
| 3984 |
|
ThreadItem.UnRead := False; |
| 3985 |
|
ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; |
| 3986 |
|
if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0; |
| 3987 |
|
TreeView.Refresh; |
| 3988 |
|
BrowserMovement( 'new', Thread ); |
| 3989 |
|
ListView.Refresh; |
| 3990 |
|
end else if ThreadItem.ScrollTop <> 0 then begin |
| 3991 |
|
try |
| 3992 |
|
doc.Body.ScrollTop := ThreadItem.ScrollTop; |
| 3993 |
|
except |
| 3994 |
|
on E: Exception do |
| 3995 |
|
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
| 3996 |
|
end; |
| 3997 |
|
end; |
| 3998 |
|
///////////////////////////////////////////////// |
| 3999 |
|
Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; |
| 4000 |
|
|
| 4001 |
end; |
end; |
| 4002 |
end; |
end; |
| 4003 |
if (Thread <> nil) and (ThreadItem <>nil) then begin |
if (Thread <> nil) and (ThreadItem <>nil) then begin |
| 4796 |
procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); |
procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); |
| 4797 |
var |
var |
| 4798 |
top: Integer; |
top: Integer; |
|
item: OleVariant; |
|
| 4799 |
nm: OleVariant; |
nm: OleVariant; |
| 4800 |
activeBrower :TWebBrowser; |
activeBrower :TWebBrowser; |
| 4801 |
|
item : OleVariant; |
| 4802 |
|
link : IHTMLElement; |
| 4803 |
begin |
begin |
| 4804 |
// |
// |
| 4805 |
while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and |
while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and |
| 4806 |
(BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
(BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
| 4807 |
Sleep(1); |
Sleep(1); |
| 4808 |
Application.ProcessMessages; |
Application.ProcessMessages; |
| 6561 |
doc : Variant; |
doc : Variant; |
| 6562 |
threadItem : TThreadItem; |
threadItem : TThreadItem; |
| 6563 |
begin |
begin |
|
// AddMessageList('DocumentComplete', nil, gmiWhat); |
|
| 6564 |
if TObject(Sender) is TWebBrowser then begin |
if TObject(Sender) is TWebBrowser then begin |
| 6565 |
BrowserRecord := nil; |
BrowserRecord := nil; |
| 6566 |
if TWebBrowser(Sender) <> Browser then begin |
if TWebBrowser(Sender) <> Browser then begin |
| 6587 |
FEvent.OnContextMenu := OnDocumentContextMenu; |
FEvent.OnContextMenu := OnDocumentContextMenu; |
| 6588 |
FEvent.OnClick := WebBrowserClick; //追加したOnClickイベント |
FEvent.OnClick := WebBrowserClick; //追加したOnClickイベント |
| 6589 |
end; |
end; |
|
|
|
|
end; |
|
| 6590 |
|
|
|
if (BrowserRecord <> nil) and |
|
|
Assigned( BrowserRecord.Thread ) then begin |
|
|
threadItem := BrowserRecord.Thread; |
|
|
|
|
|
if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin |
|
|
if threadItem.UnRead then begin |
|
|
threadItem.UnRead := False; |
|
|
threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; |
|
|
if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; |
|
|
TreeView.Refresh; |
|
|
ListView.Refresh; |
|
|
end; |
|
|
BrowserMovement( BrowserRecord.Movement, BrowserRecord ); |
|
|
BrowserRecord.Movement := ''; |
|
|
end else if threadItem.UnRead then begin |
|
|
threadItem.UnRead := False; |
|
|
threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; |
|
|
if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; |
|
|
TreeView.Refresh; |
|
|
BrowserMovement( 'new', BrowserRecord ); |
|
|
ListView.Refresh; |
|
|
end else if threadItem.ScrollTop <> 0 then begin |
|
|
try |
|
|
doc := Idispatch( OleVariant( BrowserRecord.Browser.ControlInterface ).Document ) as IHTMLDocument2; |
|
|
doc.Body.ScrollTop := threadItem.ScrollTop; |
|
|
except |
|
|
on E: Exception do |
|
|
MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); |
|
|
end; |
|
|
end; |
|
| 6591 |
end; |
end; |
| 6592 |
end; |
end; |
| 6593 |
end; |
end; |