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.590 by h677, Sat Feb 18 15:30:31 2006 UTC revision 1.591 by h677, Tue Feb 21 15:35:49 2006 UTC
# Line 2337  begin Line 2337  begin
2337                                                  browserRec := InsertBrowserTab(Item.ThreadItem, True)                                                  browserRec := InsertBrowserTab(Item.ThreadItem, True)
2338                                          else                                          else
2339                                                  browserRec := InsertBrowserTab(Item.ThreadItem, False);                                                  browserRec := InsertBrowserTab(Item.ThreadItem, False);
2340                                          if browserRec.Thread = BrowserNullTab.Thread then begin  //                                      if browserRec.Thread = BrowserNullTab.Thread then begin
2341                                                  browserRec.Movement := BrowserNullTab.Movement;  //                                              browserRec.Move(BrowserNullTab.Movement);
2342                                                  BrowserNullTab.Movement := '';  //                                              BrowserNullTab.Movement := '';
2343                                          end;  //                                      end;
2344                                  end else begin                                  end else begin
2345                                          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
2346                                                                                                  InsertBrowserTab(Item.ThreadItem);                                                                                                  InsertBrowserTab(Item.ThreadItem);
# Line 2579  begin Line 2579  begin
2579                          BrowserNullTab := TBrowserRecord.Create;                          BrowserNullTab := TBrowserRecord.Create;
2580                          BrowserNullTab.Browser := Browser;                          BrowserNullTab.Browser := Browser;
2581                  end;                  end;
2582                  if BrowserNullTab.thread <> ThreadItem then begin  //              if BrowserNullTab.thread <> ThreadItem then begin
2583                  BrowserNullTab.Movement := '';  //                      BrowserNullTab.Movement := '';
2584                  end;  //              end;
2585                  BrowserNullTab.thread := ThreadItem;                  BrowserNullTab.thread := ThreadItem;
2586                  Result := BrowserNullTab;                  Result := BrowserNullTab;
2587                  BrowserTab.TabIndex := -1;                  BrowserTab.TabIndex := -1;
# Line 2615  begin Line 2615  begin
2615                  (Assigned(FActiveContent.Browser.Document)) then begin                  (Assigned(FActiveContent.Browser.Document)) then begin
2616                  try                  try
2617                  try                  try
                         Sleep(1);  
2618                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;
2619                  except                  except
2620                          on E: Exception do                          on E: Exception do
# Line 2673  begin Line 2672  begin
2672                  if (not Assigned(Thread.Browser.Document)) then begin                  if (not Assigned(Thread.Browser.Document)) then begin
2673                          Thread.Browser.Navigate('about:blank');                          Thread.Browser.Navigate('about:blank');
2674                  end;                  end;
   
2675                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and                  while (Thread.Browser.ReadyState <> READYSTATE_COMPLETE) and
2676                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin                                  (Thread.Browser.ReadyState <> READYSTATE_INTERACTIVE) do begin
2677                          Application.ProcessMessages;                          Application.ProcessMessages;
# Line 2682  begin Line 2680  begin
2680                          end;                          end;
2681                  end;                  end;
2682    
2683                  //ActiveContent の更新                  if (Thread <> nil) and (ThreadItem <>nil) then begin
2684                  FActiveContent := Thread;                          BrowserBoardNameLabel.Caption := ThreadPTitle;
2685                            ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);
2686                            BrowserNameLabel.Caption := ThreadTitle;
2687                            ItemImage.Picture := nil;
2688                            if ThreadIsLog then
2689                                    if ThreadNewArraical then
2690                                            ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)
2691                                    else
2692                                            ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap)
2693                            else
2694                                    ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap);
2695    
2696                            ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;
2697                            BrowserNameLabel.Left := ItemImage.Left + 20;
2698    
2699                    end;
2700    
2701                  if not ThreadIsLog then begin                  if not ThreadIsLog then begin
2702                          Self.Caption := GikoDataModule.CAPTION_NAME ;                          Self.Caption := GikoDataModule.CAPTION_NAME ;
2703              //ステータスバーに表示しているスレの容量を消去                          //ステータスバーに表示しているスレの容量を消去
2704                          StatusBar.Panels[THREADSIZE_PANEL].Text := '';                          StatusBar.Panels[THREADSIZE_PANEL].Text := '';
2705                          try                          try
2706                                  s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>';                                  s := '<HTML><BODY><CENTER>このスレッドは取得していません</CENTER></BODY></HTML>';
# Line 2700  begin Line 2713  begin
2713                          end;                          end;
2714                  end else begin                  end else begin
2715                          Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']';                          Self.Caption := GikoDataModule.CAPTION_NAME + ' - [' + ThreadTitle + ']';
2716              //ステータスバーに表示しているスレの容量を表示                          //ステータスバーに表示しているスレの容量を表示
2717                          StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]);                          StatusBar.Panels[THREADSIZE_PANEL].Text := Format('%6.2f kB', [ThreadItem.Size / 1024]);
2718                          StatusBar.Panels[THREADSIZE_PANEL].Width :=                          StatusBar.Panels[THREADSIZE_PANEL].Width :=
2719                                  Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70);                                  Max(StatusBar.Canvas.TextWidth(StatusBar.Panels[THREADSIZE_PANEL].Text), 70);
# Line 2710  begin Line 2723  begin
2723                                  Thread.Repaint := false;                                  Thread.Repaint := false;
2724    
2725                                  Thread.Browser.OnStatusTextChange := nil;                                  Thread.Browser.OnStatusTextChange := nil;
2726                                  LockWindowUpdate(Thread.Browser.Handle);                                  LockWindowUpdate(Thread.Browser.ParentWindow);
2727                                    //LockWindowUpdate(Thread.Browser.Handle);
2728                                  HTMLCreater.CreateHTML2(                                  HTMLCreater.CreateHTML2(
2729                                                  Idispatch( olevariant(Thread.Browser.ControlInterface).Document),                                                  Idispatch( olevariant(Thread.Browser.ControlInterface).Document),
2730                                                  ThreadItem, sTitle);                                                  ThreadItem, sTitle);
2731                                  while ( (Thread.Browser.Document as IHTMLDocument2).readyState <> 'complete' ) do begin  
2732                                          Application.ProcessMessages;                                  // 中身が読み終わるのを待つ
2733                                    while ( (((Thread.Browser.Document as IHTMLDocument2).body as IHTMLElement).document
2734                                                    as IHTMLDocument2).readyState <> 'complete' ) do begin
2735                                          Sleep(1);                                          Sleep(1);
2736                                            Application.ProcessMessages;
2737                                  end;                                  end;
2738                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;                                  Thread.Browser.OnStatusTextChange := BrowserStatusTextChange;
                                 if ThreadItem = nil then begin  
                                         FActiveContent := nil;  
                                         BrowserTab.Repaint;  
                                         Exit;  
                                 end;  
2739                                  //PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );                                  //PostMessage( Handle, USER_DOCUMENTCOMPLETE, Integer( Thread.Browser ), 0 );
2740                          end else begin                          end else begin
2741                                  // JUMPを指定されていたらJUMPする                                  // JUMPを指定されていたらJUMPする
2742                                  if (Thread.Movement <> '') then begin                                  //if (Thread.Movement <> '') then begin
2743                                          Thread.Move(Thread.Movement);                                  //      Thread.Move(Thread.Movement);
2744                                          Thread.Movement := '';                                  //      Thread.Movement := '';
2745                                  end;                                  //end;
2746                          end;                          end;
2747                  end;                  end;
                 if (Thread <> nil) and (ThreadItem <>nil) then begin  
                         BrowserBoardNameLabel.Caption := ThreadPTitle;  
                         ItemIcon16.GetBitmap(4, ItemBoardImage.Picture.Bitmap);  
                         BrowserNameLabel.Caption := ThreadTitle;  
                         ItemImage.Picture := nil;  
                         if ThreadIsLog then  
                                 if ThreadNewArraical then  
                                         ItemImageList.GetBitmap(2, ItemImage.Picture.Bitmap)  
                                 else  
                                         ItemImageList.GetBitmap(0, ItemImage.Picture.Bitmap)  
                         else  
                                 ItemImageList.GetBitmap(1, ItemImage.Picture.Bitmap);  
2748    
2749                          ItemImage.Left := BrowserBoardNameLabel.Left + BrowserBoardNameLabel.Width + 8;                  //ActiveContent の更新
2750                          BrowserNameLabel.Left := ItemImage.Left + 20;                  FActiveContent := Thread;
2751    
2752                          //Threadの板と表示している板が同じなら描画を更新する                  //Threadの板と表示している板が同じなら描画を更新する
2753                          if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then                  if (FActiveList is TBoard) and (TBoard(ActiveList) = ThreadItem.ParentBoard) then begin
2754                                  ListView.Refresh;                          ListView.Refresh;
                 end else begin  
                         FActiveContent := nil;  
2755                  end;                  end;
2756    
2757          finally          finally
2758                  Screen.Cursor := crDefault;                  Screen.Cursor := crDefault;
2759          end;          end;
# Line 4244  begin Line 4243  begin
4243                           Assigned( BrowserRecord.Thread ) then begin                           Assigned( BrowserRecord.Thread ) then begin
4244                          threadItem := BrowserRecord.Thread;                          threadItem := BrowserRecord.Thread;
4245    
4246                          if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin                          if (threadItem.JumpAddress > 0) then begin
4247                            //if (BrowserRecord <> nil) and (Length( BrowserRecord.Movement ) > 0) then begin
4248                                  if threadItem.UnRead then begin                                  if threadItem.UnRead then begin
4249                                          threadItem.UnRead := False;                                          threadItem.UnRead := False;
4250                                          TreeView.Refresh;                                          TreeView.Refresh;
4251                                          ListView.Refresh;                                          ListView.Refresh;
4252                                  end;                                  end;
4253                                  // スクロール先が取得外のレスの時は終端に移動                                  // スクロール先が取得外のレスの時は終端に移動
4254                                  if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin                                  //if (StrToIntDef(BrowserRecord.Movement, 0) <= BrowserRecord.Thread.Count) then begin
4255                                          BrowserRecord.Move(BrowserRecord.Movement);                                  if (threadItem.JumpAddress <= BrowserRecord.Thread.Count) then begin
4256                                          BrowserRecord.Movement := '';                                          BrowserRecord.Move(IntToStr(threadItem.JumpAddress));
4257                                            threadItem.JumpAddress := 0;
4258                                  end else begin                                  end else begin
4259                                          BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count));                                          BrowserRecord.Move(IntToStr(BrowserRecord.Thread.Count));
4260                                  end;                                  end;
# Line 4593  var Line 4594  var
4594  begin  begin
4595          stRes := 0;          stRes := 0;
4596          edRes := 0;          edRes := 0;
4597            Thread.JumpAddress := 0;
4598          // タブを生成          // タブを生成
4599          browserRec := InsertBrowserTab(Thread);          browserRec := InsertBrowserTab(Thread);
4600          if (browserRec <> nil) then begin          if (browserRec <> nil) then begin
# Line 4607  begin Line 4609  begin
4609                          end;                          end;
4610                  end;                  end;
4611                  if ( stRes > 0 ) then begin                  if ( stRes > 0 ) then begin
4612                          browserRec.Movement := IntToStr( stRes );                          Thread.JumpAddress := stRes;
4613                  end;  
4614                  // ログを持っていないか JUMPすべきレス番号まで取得していないときはDLする                          // ログを持っていないか JUMPすべきレス番号まで取得していないときはDLする
4615                  if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin                          if (not Thread.IsLogFile) or (stRes > Thread.Count) then begin
4616                          DownloadContent(Thread);                                  DownloadContent(Thread);
4617                  end else if (not browserRec.Repaint) and (browserRec.Movement <> '') then begin                          end else if (not browserRec.Repaint) then begin
4618                          try                                  try
4619                                  //SetContent(browserRec);                                          browserRec.Move(IntToStr(stRes));
4620                                  browserRec.Move(browserRec.Movement);                                          Thread.JumpAddress := 0;
4621                                  browserRec.Movement := '';                                          doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2;
4622                                  doc := Idispatch( OleVariant( browserRec.Browser.ControlInterface ).Document ) as IHTMLDocument2;                                          Thread.ScrollTop := doc.Body.ScrollTop;
4623                                  Thread.ScrollTop := doc.Body.ScrollTop;                                  except
4624                          except                                  end;
4625                          end;                          end;
4626                  end;                  end;
4627          end;          end;
# Line 7215  begin Line 7217  begin
7217          s := MouseGesture.GetGestureStr;          s := MouseGesture.GetGestureStr;
7218          Action := GikoSys.Setting.Gestures.GetGestureAction(s);          Action := GikoSys.Setting.Gestures.GetGestureAction(s);
7219          if Action <> nil then          if Action <> nil then
7220                    MouseGesture.OnGestureStart(nil);
7221                  Action.Execute;                  Action.Execute;
7222          StatusBar.Panels[1].Text := '';          StatusBar.Panels[1].Text := '';
7223  end;  end;
# Line 7682  begin Line 7685  begin
7685                  TOleControl(newBrowser).Align := alNone;                  TOleControl(newBrowser).Align := alNone;
7686                  TOleControl(newBrowser).Left    := 0;                  TOleControl(newBrowser).Left    := 0;
7687                  TOleControl(newBrowser).Top     := 0;                  TOleControl(newBrowser).Top     := 0;
7688                    newBrowser.RegisterAsDropTarget := False;
7689                  newBrowser.OnDocumentComplete   := BrowserDocumentComplete;                  newBrowser.OnDocumentComplete   := BrowserDocumentComplete;
7690                  newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;                  newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;
7691                  newBrowser.OnEnter                              := BrowserEnter;                  newBrowser.OnEnter                              := BrowserEnter;

Legend:
Removed from v.1.590  
changed lines
  Added in v.1.591

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