ギコナビ
Revisão | 6faa0503d52b1bf2554969a389b2fd433d6e202c (tree) |
---|---|
Hora | 2005-11-03 17:12:48 |
Autor | h677 <h677> |
Commiter | h677 |
WebBrowserのスクロールのタイミングとかを修正
@@ -1,6 +1,6 @@ | ||
1 | 1 | object GikoForm: TGikoForm |
2 | - Left = 176 | |
3 | - Top = 124 | |
2 | + Left = 597 | |
3 | + Top = 121 | |
4 | 4 | HorzScrollBar.Visible = False |
5 | 5 | VertScrollBar.Visible = False |
6 | 6 | AutoScroll = False |
@@ -3580,16 +3580,12 @@ begin | ||
3580 | 3580 | browserRec := InsertBrowserTab(Item.ThreadItem, True) |
3581 | 3581 | else |
3582 | 3582 | browserRec := InsertBrowserTab(Item.ThreadItem, False); |
3583 | - if browserRec.Thread = BrowserNullTab.Thread then begin | |
3584 | - browserRec.Movement := BrowserNullTab.Movement; | |
3585 | - BrowserNullTab.Movement := ''; | |
3586 | - end; | |
3587 | 3583 | end else begin |
3588 | 3584 | if (GetActiveContent = Item.ThreadItem) or (FActiveContent = nil) or(FActiveContent.Browser = BrowserNullTab.Browser) then |
3589 | 3585 | InsertBrowserTab(Item.ThreadItem); |
3590 | 3586 | end; |
3591 | 3587 | |
3592 | - Application.ProcessMessages; | |
3588 | + Application.ProcessMessages; | |
3593 | 3589 | |
3594 | 3590 | if Item.State = gdsComplete then begin |
3595 | 3591 | PlaySound('New'); |
@@ -3814,7 +3810,6 @@ begin | ||
3814 | 3810 | newBrowser.thread := ThreadItem; |
3815 | 3811 | // newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes; |
3816 | 3812 | newBrowser.Repaint := true; |
3817 | - | |
3818 | 3813 | i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser); |
3819 | 3814 | if (not GikoSys.Setting.BrowserTabVisible) and (BrowserTab.Tabs.Count > 1) then begin |
3820 | 3815 | DeleteTab( TBrowserRecord( BrowserTab.Tabs.Objects[ 0 ] ) ); |
@@ -3958,17 +3953,51 @@ begin | ||
3958 | 3953 | Thread.Repaint := false; |
3959 | 3954 | |
3960 | 3955 | Thread.Browser.OnStatusTextChange := nil; |
3961 | - //doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; | |
3956 | + | |
3962 | 3957 | |
3963 | 3958 | //GikoSys.CreateHTML2(doc, ThreadItem, sTitle); |
3964 | 3959 | HTMLCreater.CreateHTML2(olevariant(Thread.Browser.ControlInterface).Document, ThreadItem, sTitle); |
3965 | - Thread.Browser.OnStatusTextChange := BrowserStatusTextChange; | |
3966 | - | |
3960 | + doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2; | |
3961 | + //[hª®¹·éÜÅÒ | |
3962 | + while (doc.readyState) <> 'complete' do begin | |
3963 | + Application.ProcessMessages; | |
3964 | + end; | |
3967 | 3965 | if ThreadItem = nil then begin |
3968 | 3966 | FActiveContent := nil; |
3969 | 3967 | BrowserTab.Repaint; |
3970 | 3968 | Exit; |
3971 | 3969 | end; |
3970 | + ///////////////////////////////////////////////// | |
3971 | + //DocumentComplete©çÁÄ«½B | |
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 | + | |
3972 | 4001 | end; |
3973 | 4002 | end; |
3974 | 4003 | if (Thread <> nil) and (ThreadItem <>nil) then begin |
@@ -4767,12 +4796,13 @@ end; | ||
4767 | 4796 | procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord); |
4768 | 4797 | var |
4769 | 4798 | top: Integer; |
4770 | - item: OleVariant; | |
4771 | 4799 | nm: OleVariant; |
4772 | 4800 | activeBrower :TWebBrowser; |
4801 | + item : OleVariant; | |
4802 | + link : IHTMLElement; | |
4773 | 4803 | begin |
4774 | 4804 | // |
4775 | - while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and | |
4805 | + while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and | |
4776 | 4806 | (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin |
4777 | 4807 | Sleep(1); |
4778 | 4808 | Application.ProcessMessages; |
@@ -6531,7 +6561,6 @@ var | ||
6531 | 6561 | doc : Variant; |
6532 | 6562 | threadItem : TThreadItem; |
6533 | 6563 | begin |
6534 | -// AddMessageList('DocumentComplete', nil, gmiWhat); | |
6535 | 6564 | if TObject(Sender) is TWebBrowser then begin |
6536 | 6565 | BrowserRecord := nil; |
6537 | 6566 | if TWebBrowser(Sender) <> Browser then begin |
@@ -6558,39 +6587,7 @@ begin | ||
6558 | 6587 | FEvent.OnContextMenu := OnDocumentContextMenu; |
6559 | 6588 | FEvent.OnClick := WebBrowserClick; //ÇÁµ½OnClickCxg |
6560 | 6589 | end; |
6561 | - | |
6562 | - end; | |
6563 | - | |
6564 | - if (BrowserRecord <> nil) and | |
6565 | - Assigned( BrowserRecord.Thread ) then begin | |
6566 | - threadItem := BrowserRecord.Thread; | |
6567 | 6590 | |
6568 | - if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin | |
6569 | - if threadItem.UnRead then begin | |
6570 | - threadItem.UnRead := False; | |
6571 | - threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; | |
6572 | - if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; | |
6573 | - TreeView.Refresh; | |
6574 | - ListView.Refresh; | |
6575 | - end; | |
6576 | - BrowserMovement( BrowserRecord.Movement, BrowserRecord ); | |
6577 | - BrowserRecord.Movement := ''; | |
6578 | - end else if threadItem.UnRead then begin | |
6579 | - threadItem.UnRead := False; | |
6580 | - threadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1; | |
6581 | - if threadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0; | |
6582 | - TreeView.Refresh; | |
6583 | - BrowserMovement( 'new', BrowserRecord ); | |
6584 | - ListView.Refresh; | |
6585 | - end else if threadItem.ScrollTop <> 0 then begin | |
6586 | - try | |
6587 | - doc := Idispatch( OleVariant( BrowserRecord.Browser.ControlInterface ).Document ) as IHTMLDocument2; | |
6588 | - doc.Body.ScrollTop := threadItem.ScrollTop; | |
6589 | - except | |
6590 | - on E: Exception do | |
6591 | - MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0); | |
6592 | - end; | |
6593 | - end; | |
6594 | 6591 | end; |
6595 | 6592 | end; |
6596 | 6593 | end; |