Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/Giko.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.527 by genyakun, Fri Oct 14 06:43:25 2005 UTC revision 1.527.2.5 by h677, Fri Nov 4 17:06:36 2005 UTC
# Line 3580  begin Line 3580  begin
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');
# Line 3814  begin Line 3810  begin
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 ] ) );
# Line 3958  begin Line 3953  begin
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(doc, 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                                  PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );  }                               /////////////////////////////////////////////////
3971                                    //DocumentCompleteから持ってきた。
3972    {
3973                                    if Length(Thread.Movement) > 0 then begin
3974                                            if ThreadItem.UnRead then begin
3975                                                    ThreadItem.UnRead := False;
3976                                                    ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
3977                                                    if ThreadItem.ParentBoard.UnRead < 0 then threadItem.ParentBoard.UnRead := 0;
3978                                                    TreeView.Refresh;
3979                                                    ListView.Refresh;
3980                                            end;
3981                                            BrowserMovement( Thread.Movement, Thread );
3982                                            Thread.Movement := '';
3983                                    end else
3984                                    if ThreadItem.UnRead then begin
3985                                            ThreadItem.UnRead := False;
3986                                            ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
3987                                            if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;
3988                                            TreeView.Refresh;
3989                                            BrowserMovement( 'new', Thread );
3990                                            ListView.Refresh;
3991                                    end else if ThreadItem.ScrollTop <> 0 then begin
3992                                            try
3993                                                    doc.Body.ScrollTop := ThreadItem.ScrollTop;
3994                                            except
3995                                                    on E: Exception do
3996                                                            MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
3997                                            end;
3998                                    end;
3999    }
4000                                    /////////////////////////////////////////////////
4001                                    Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
4002    
4003                          end;                          end;
4004                  end;                  end;
4005                  if (Thread <> nil) and (ThreadItem <>nil) then begin                  if (Thread <> nil) and (ThreadItem <>nil) then begin
# Line 4768  end; Line 4798  end;
4798  procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord);  procedure TGikoForm.BrowserMovement(const AName: string; BrowserRecord: TBrowserRecord);
4799  var  var
4800          top: Integer;          top: Integer;
         item: OleVariant;  
4801          nm: OleVariant;          nm: OleVariant;
4802          activeBrower :TWebBrowser;          activeBrower :TWebBrowser;
4803            item : OleVariant;
4804            link : IHTMLElement;
4805  begin  begin
4806          //          //
4807          while (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and          while  (BrowserRecord.Browser.ReadyState <> READYSTATE_COMPLETE) and
4808                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (BrowserRecord.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
4809                  Sleep(1);                  Sleep(1);
4810                  Application.ProcessMessages;                  Application.ProcessMessages;
# Line 6530  var Line 6561  var
6561          BrowserRecord :TBrowserRecord;          BrowserRecord :TBrowserRecord;
6562          i :Integer;          i :Integer;
6563          doc                                     : Variant;          doc                                     : Variant;
6564          threadItem      : TThreadItem;  //      threadItem      : TThreadItem;
6565  begin  begin
 //      AddMessageList('DocumentComplete', nil, gmiWhat);  
6566          if TObject(Sender) is TWebBrowser then begin          if TObject(Sender) is TWebBrowser then begin
6567                  BrowserRecord := nil;                  BrowserRecord := nil;
6568                  if TWebBrowser(Sender) <> Browser then begin                  if TWebBrowser(Sender) <> Browser then begin
# Line 6549  begin Line 6579  begin
6579                                  BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);                                  BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);
6580                                  BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu;                                  BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu;
6581                                  BrowserRecord.FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  BrowserRecord.FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6582    
6583                                    if BrowserRecord.Thread.UnRead then begin
6584                                            BrowserRecord.Thread.UnRead := False;
6585                                            BrowserRecord.Thread.ParentBoard.UnRead := BrowserRecord.Thread.ParentBoard.UnRead - 1;
6586                                            if BrowserRecord.Thread.ParentBoard.UnRead < 0 then BrowserRecord.Thread.ParentBoard.UnRead := 0;
6587                                            TreeView.Refresh;
6588                                            ListView.Refresh;
6589                                            if Length(BrowserRecord.Movement) > 0 then begin
6590                                                    BrowserMovement( BrowserRecord.Movement, BrowserRecord );
6591                                                    BrowserRecord.Movement := '';
6592                                            end else begin
6593                                                    BrowserMovement( 'new', BrowserRecord );
6594                                            end;
6595                                    end else
6596                                    if Length(BrowserRecord.Movement) > 0 then begin
6597                                            BrowserMovement( BrowserRecord.Movement, BrowserRecord );
6598                                            BrowserRecord.Movement := '';
6599                                    end else if BrowserRecord.Thread.ScrollTop <> 0 then begin
6600                                            try
6601                                                    doc := Idispatch( olevariant(BrowserRecord.Browser.ControlInterface).Document) as IHTMLDocument2;
6602                                                    doc.Body.ScrollTop := BrowserRecord.Thread.ScrollTop;
6603                                            except
6604                                                    on E: Exception do
6605                                                            MsgBox(Handle, E.Message, 'SetContent[ScrollTop<-]', 0);
6606                                            end;
6607                                    end;
6608                          end;                          end;
6609                  end else begin                  end else begin
6610                          if GetActiveContent <> nil then begin                          if GetActiveContent <> nil then begin
# Line 6559  begin Line 6615  begin
6615                                  FEvent.OnContextMenu := OnDocumentContextMenu;                                  FEvent.OnContextMenu := OnDocumentContextMenu;
6616                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント                                  FEvent.OnClick := WebBrowserClick;  //追加したOnClickイベント
6617                          end;                          end;
                           
6618                  end;                  end;
6619    
                 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;  
                 end;  
6620          end;          end;
6621  end;  end;
6622    

Legend:
Removed from v.1.527  
changed lines
  Added in v.1.527.2.5

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26