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.2.2 by h677, Mon Oct 31 15:22:58 2005 UTC revision 1.527.2.3 by h677, Thu Nov 3 08:12:48 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(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
# Line 4767  end; Line 4796  end;
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;
# Line 6531  var Line 6561  var
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
# Line 6558  begin Line 6587  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;

Legend:
Removed from v.1.527.2.2  
changed lines
  Added in v.1.527.2.3

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