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.302 by h677, Thu May 20 23:32:28 2004 UTC revision 1.303 by h677, Sat May 22 11:34:24 2004 UTC
# Line 916  type Line 916  type
916                  FOldFormWidth           : Integer;                              // 直前のウィンドウの幅                  FOldFormWidth           : Integer;                              // 直前のウィンドウの幅
917                  FToolBarSettingSender : TToolBarSettingSenderType;      // ツールバー設定をクリックしたクールバー                  FToolBarSettingSender : TToolBarSettingSenderType;      // ツールバー設定をクリックしたクールバー
918                  FMouseDownPos           : TPoint;                               // ブラウザタブでマウスを押したときの座標                  FMouseDownPos           : TPoint;                               // ブラウザタブでマウスを押したときの座標
919                    FNewBrowserCount: Integer;
920                    FBrowsers: TList;
921                  procedure SetBoardTreeNode( inBBS : TBBS );                  procedure SetBoardTreeNode( inBBS : TBBS );
922                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;                  function SetCategoryListItem(ABBS2ch: TBBS): Integer;
923                  function SetBoardListItem(Category: TCategory): Integer;                  function SetBoardListItem(Category: TCategory): Integer;
# Line 1190  var Line 1192  var
1192          i: Integer;          i: Integer;
1193          wp: TWindowPlacement;          wp: TWindowPlacement;
1194          s: string;          s: string;
1195            newbrowser: TWebBrowser;
1196  begin  begin
1197  {$IFDEF DEBUG}  {$IFDEF DEBUG}
1198          AllocConsole;          AllocConsole;
# Line 1210  begin Line 1213  begin
1213          FSearchDialog := nil;          FSearchDialog := nil;
1214          BrowserNullTab := TBrowserRecord.Create;          BrowserNullTab := TBrowserRecord.Create;
1215          BrowserNullTab.Browser := Browser;          BrowserNullTab.Browser := Browser;
1216            FNewBrowserCount := 0;
1217            FBrowsers := TList.Create;
1218            for i := 0 to 4 do begin
1219                    newBrowser := TWebBrowser.Create(nil);
1220                    TOleControl(newBrowser).Parent := BrowserPanel;
1221                    TOleControl(newBrowser).Align := alClient;
1222                    newBrowser.Navigate(BLANK_HTML);
1223                    newBrowser.OnDocumentComplete   := BrowserDocumentComplete;
1224                    newBrowser.OnBeforeNavigate2    := BrowserBeforeNavigate2;
1225                    newBrowser.OnEnter                              := BrowserEnter;
1226                    newBrowser.OnNewWindow2                 := BrowserNewWindow2;
1227                    newBrowser.OnStatusTextChange   := BrowserStatusTextChange;
1228                    newBrowser.OnTitleChange                := BrowserTitleChange;
1229                    TOleControl(newBrowser).Visible := false;
1230                    FBrowsers.Add(newBrowser);
1231            end;
1232    
1233          // 起動時に保存されてしまう対策          // 起動時に保存されてしまう対策
1234          FIsIgnoreResize := True;          FIsIgnoreResize := True;
1235    
# Line 1789  begin Line 1809  begin
1809    
1810          try          try
1811                  //タブクローズ                  //タブクローズ
   
1812                  BrowserNullTab.Thread := nil;                  BrowserNullTab.Thread := nil;
1813                  BrowserTab.OnChange := nil;                  BrowserTab.OnChange := nil;
1814                  BrowserTab.Tabs.BeginUpdate;                  BrowserTab.Tabs.BeginUpdate;
# Line 1802  begin Line 1821  begin
1821                  BrowserTab.OnChange := BrowserTabChange;                  BrowserTab.OnChange := BrowserTabChange;
1822          except          except
1823          end;          end;
1824    
1825            for i := FBrowsers.Count - 1 downto 0 do begin
1826                    TWebBrowser(FBrowsers[i]).Free;
1827            end;
1828            FBrowsers.Clear;
1829            FBrowsers.Capacity := 0;
1830            FBrowsers.Free;
1831          try          try
1832                  if BrowserNullTab <> nil then begin                  if BrowserNullTab <> nil then begin
1833                          BrowserNullTab.Browser := nil;  {*BrowserNullTabのBrowserは設計時に貼り付けてる奴                          BrowserNullTab.Browser := nil;  {*BrowserNullTabのBrowserは設計時に貼り付けてる奴
# Line 3178  end;} Line 3204  end;}
3204  procedure TGikoForm.InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);  procedure TGikoForm.InsertBrowserTab(ThreadItem: TThreadItem; ActiveTab: Boolean = True);
3205    
3206  var  var
3207          i: Integer;          i, j: Integer;
3208          favItem : TFavoriteThreadItem;          favItem : TFavoriteThreadItem;
3209          newBrowser      : TBrowserRecord;          newBrowser      : TBrowserRecord;
3210  begin  begin
# Line 3204  begin Line 3230  begin
3230                  end;                  end;
3231    
3232                  if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin                  if GikoSys.Setting.BrowserTabAppend = gtaFirst then begin
3233                          BrowserTab.Tabs.Insert(0, GikoSys.GetShortName(ThreadItem.Title, 20));                          //BrowserTab.Tabs.Insert(0, GikoSys.GetShortName(ThreadItem.Title, 20));
3234                          newBrowser := TBrowserRecord.Create;                          newBrowser := TBrowserRecord.Create;
3235                          newBrowser.Browser := TWebBrowser.Create(nil);                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
3236                          TOleControl(newBrowser.Browser).Parent := BrowserPanel;                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[4]) then
3237                          TOleControl(newBrowser.Browser).Align := alClient;                                          TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser := nil;
3238                          newBrowser.Browser.OnDocumentComplete   := BrowserDocumentComplete;                          end;
3239                          newBrowser.Browser.OnBeforeNavigate2    := BrowserBeforeNavigate2;                          newBrowser.Browser := TWebBrowser(FBrowsers[4]);
3240                          newBrowser.Browser.OnEnter                              := BrowserEnter;                          FBrowsers.Move(4, 0);
                         newBrowser.Browser.OnNewWindow2                 := BrowserNewWindow2;  
                         newBrowser.Browser.OnStatusTextChange   := BrowserStatusTextChange;  
                         newBrowser.Browser.OnTitleChange                := BrowserTitleChange;  
3241                          newBrowser.thread := ThreadItem;                          newBrowser.thread := ThreadItem;
3242                          newBrowser.Repaint := true;                          newBrowser.Repaint := true;
3243                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
3244                          newBrowser.Browser.Navigate( 'about:blank' );                          newBrowser.Browser.Navigate( 'about:blank' );
3245                          BrowserTab.Tabs.Objects[0] := newBrowser;                          BrowserTab.Tabs.InsertObject(0, GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
3246                            //BrowserTab.Tabs.Objects[0] := newBrowser;
3247                          if ActiveTab then begin                          if ActiveTab then begin
3248                                  BrowserTab.TabIndex := 0;                                  BrowserTab.TabIndex := 0;
3249                          end;                          end;
3250    
3251                  end else begin                  end else begin
3252                          i := BrowserTab.Tabs.Add(GikoSys.GetShortName(ThreadItem.Title, 20));                          //i := BrowserTab.Tabs.Add(GikoSys.GetShortName(ThreadItem.Title, 20));
3253                            //Inc(FNewBrowserCount);
3254                          newBrowser := TBrowserRecord.Create;                          newBrowser := TBrowserRecord.Create;
3255                          newBrowser.Browser := TWebBrowser.Create(nil);                          for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
3256                          TOleControl(newBrowser.Browser).Parent := BrowserPanel;                                  if TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser = TWebBrowser(FBrowsers[4]) then
3257                          TOleControl(newBrowser.Browser).Align := alClient;                                          TBrowserRecord(BrowserTab.Tabs.Objects[j]).FBrowser := nil;
3258                          newBrowser.Browser.OnDocumentComplete   := BrowserDocumentComplete;                          end;
3259                          newBrowser.Browser.OnBeforeNavigate2    := BrowserBeforeNavigate2;                          newBrowser.Browser := TWebBrowser(FBrowsers[4]);
3260                          newBrowser.Browser.OnEnter                              := BrowserEnter;                          FBrowsers.Move(4, 0);
                         newBrowser.Browser.OnNewWindow2                 := BrowserNewWindow2;  
                         newBrowser.Browser.OnStatusTextChange   := BrowserStatusTextChange;  
                         newBrowser.Browser.OnTitleChange                := BrowserTitleChange;  
3261                          newBrowser.thread := ThreadItem;                          newBrowser.thread := ThreadItem;
3262                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;                          newBrowser.OnlyHundred := GikoSys.OnlyAHundredRes;
3263                          newBrowser.Repaint := true;                          newBrowser.Repaint := true;
3264                          newBrowser.Browser.Navigate( 'about:blank' );                          newBrowser.Browser.Navigate( 'about:blank' );
3265                          BrowserTab.Tabs.Objects[i] := newBrowser;                          i := BrowserTab.Tabs.AddObject(GikoSys.GetShortName(ThreadItem.Title, 20), newBrowser);
3266                            //BrowserTab.Tabs.Objects[i] := newBrowser;
3267                          if ActiveTab then begin                          if ActiveTab then begin
3268                                  BrowserTab.TabIndex := i;                                  BrowserTab.TabIndex := i;
3269                          end;                          end;
# Line 3280  var Line 3303  var
3303  begin  begin
3304          if inThread = nil then          if inThread = nil then
3305          begin          begin
3306                  Thread := TBrowserRecord.Create;                  //Thread := TBrowserRecord.Create;
3307                  Thread.Browser := Browser;                  //Thread.Browser := Browser;
3308                  Thread.Thread := nil;                  //Thread.Thread := nil;
3309                    Exit;
3310          end else begin          end else begin
3311                  Thread := inThread;                  Thread := inThread;
3312          end;          end;
# Line 3294  begin Line 3318  begin
3318                  try                  try
3319                          Sleep(1);                          Sleep(1);
3320                          //Application.ProcessMessages;                          //Application.ProcessMessages;
3321                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document)).Body.ScrollTop;                          FActiveContent.Thread.ScrollTop := OleVariant(IHTMLDocument2(FActiveContent.Browser.Document).Body).ScrollTop;
3322                          if FActiveContent.Browser <> BrowserNullTab.Browser then                          if FActiveContent.Browser <> BrowserNullTab.Browser then
3323                                  TOleControl(FActiveContent.Browser).Visible := false;                                  TOleControl(FActiveContent.Browser).Visible := false;
3324                  except                  except
# Line 3332  begin Line 3356  begin
3356    
3357          Screen.Cursor := crHourGlass;          Screen.Cursor := crHourGlass;
3358          try          try
3359            ToleControl(Thread.FBrowser).Visible := true;
3360                  if ThreadItem.UnRead then begin                  if ThreadItem.UnRead then begin
3361                          ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;                          ThreadItem.ParentBoard.UnRead := ThreadItem.ParentBoard.UnRead - 1;
3362                          if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;                          if ThreadItem.ParentBoard.UnRead < 0 then ThreadItem.ParentBoard.UnRead := 0;
# Line 3358  begin Line 3383  begin
3383                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき                          //Thread.Repaintは、スキン等の設定を変更したとき、Threadをダウンロードしたとき
3384                          //新規にThreadを開いたときに真になっている。                          //新規にThreadを開いたときに真になっている。
3385                          if(Thread.Repaint) or (Thread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin                          if(Thread.Repaint) or (Thread.OnlyHundred <> GikoSys.OnlyAHundredRes)then begin
3386                                  Thread.LastSize := ThreadItem.Size;                                  //Thread.LastSize := ThreadItem.Size;
3387                                  Thread.Repaint := false;                                  Thread.Repaint := false;
3388                                  try                                  try
3389                                            Application.ProcessMessages;
3390                                          doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2;                                          doc := Idispatch( olevariant(Thread.Browser.ControlInterface).Document) as IHTMLDocument2;
3391                                          GikoSys.CreateHTML2(doc, ThreadItem, sTitle);                                          GikoSys.CreateHTML2(doc, ThreadItem, sTitle);
3392                                          Thread.OnlyHundred := GikoSys.OnlyAHundredRes;                                          Thread.OnlyHundred := GikoSys.OnlyAHundredRes;
# Line 3425  end; Line 3451  end;
3451    
3452  function TGikoForm.GetActiveContent: TThreadItem;  function TGikoForm.GetActiveContent: TThreadItem;
3453  begin  begin
3454          if FActiveContent <> nil then          if( FActiveContent <> nil) and (FActiveContent.Thread <> nil)then
3455                  Result := FActiveContent.Thread                  Result := FActiveContent.Thread
3456          else          else
3457                  Result := nil;                  Result := nil;
# Line 5186  begin Line 5212  begin
5212  end;  end;
5213  procedure TGikoForm.DeleteTab(BrowserRecord: TBrowserRecord);  procedure TGikoForm.DeleteTab(BrowserRecord: TBrowserRecord);
5214  var  var
5215          i: Integer;          i, j, idx: Integer;
5216          doc: Variant;          doc: Variant;
5217  begin  begin
5218            idx := BrowserTab.TabIndex;
5219          FTabHintIndex := -1;          FTabHintIndex := -1;
5220          for i := 0 to BrowserTab.Tabs.Count - 1 do begin          for i := 0 to BrowserTab.Tabs.Count - 1 do begin
5221                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]) = BrowserRecord then begin                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]) = BrowserRecord then begin
# Line 5200  begin Line 5227  begin
5227                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0;                                  TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread.ScrollTop := 0;
5228                          end;                          end;
5229                          if( FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i]) ) then                          if( FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i]) ) then
5230                  FActiveContent := nil;                                  FActiveContent := nil;
5231                            if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin
5232                                    j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser);
5233                                    if j <> -1 then
5234                                            FBrowsers.Move(j, 4);
5235                            end;
5236                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free;                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free;
5237                          BrowserTab.Tabs.Delete(i);                          BrowserTab.Tabs.Delete(i);
5238                          if i > (BrowserTab.Tabs.Count - 1) then                          if idx > (BrowserTab.Tabs.Count - 1) then
5239                                  BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1                                  BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1
5240                          else                          else
5241                                  BrowserTab.TabIndex := i;                                  BrowserTab.TabIndex := idx;
5242                          if BrowserTab.Tabs.Count = 0 then begin                          if BrowserTab.Tabs.Count = 0 then begin
5243                                  BrowserNullTab.Thread := nil;                                  BrowserNullTab.Thread := nil;
5244                          end;                          end;
5245                            if(BrowserTab.TabIndex <> -1) and
5246                                    ( TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil) then begin
5247                                    for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
5248                                            if(TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser
5249                                                     = TWebBrowser(FBrowsers[4]) )then
5250                                            begin
5251                                                    TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser := nil;
5252                                                    break;
5253                                            end;
5254                                    end;
5255                                    TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser
5256                                             :=  TWebBrowser(FBrowsers[4]);
5257                                    TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Repaint := true;
5258                                    FBrowsers.Move(4, 0);
5259                            end;
5260                          BrowserTab.Tabs.EndUpdate;                          BrowserTab.Tabs.EndUpdate;
5261                          BrowserTab.OnChange(nil);                          BrowserTab.OnChange(nil);
5262                          Exit;                          Exit;
# Line 5218  begin Line 5265  begin
5265  end;  end;
5266  procedure TGikoForm.DeleteTab(ThreadItem: TThreadItem);  procedure TGikoForm.DeleteTab(ThreadItem: TThreadItem);
5267  var  var
5268          i: Integer;          i, j, idx: Integer;
5269          doc: Variant;          doc: Variant;
5270  begin  begin
5271            idx := BrowserTab.TabIndex;
5272          FTabHintIndex := -1;          FTabHintIndex := -1;
5273          for i := 0 to BrowserTab.Tabs.Count - 1 do begin          for i := 0 to BrowserTab.Tabs.Count - 1 do begin
5274                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin                  if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Thread = ThreadItem then begin
# Line 5233  begin Line 5281  begin
5281                          end;                          end;
5282                          if(FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i])) then                          if(FActiveContent = TBrowserRecord(BrowserTab.Tabs.Objects[i])) then
5283                  FActiveContent := nil;                  FActiveContent := nil;
5284                            if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser <> nil then begin
5285                                    j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser);
5286                                    if j <> -1 then
5287                                            FBrowsers.Move(j, 4);
5288                            end;
5289                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free;                          TBrowserRecord(BrowserTab.Tabs.Objects[i]).Free;
5290                          BrowserTab.Tabs.Delete(i);                          BrowserTab.Tabs.Delete(i);
5291                          if i > (BrowserTab.Tabs.Count - 1) then                          if idx > (BrowserTab.Tabs.Count - 1) then
5292                                  BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1                                  BrowserTab.TabIndex := BrowserTab.Tabs.Count - 1
5293                          else                          else
5294                                  BrowserTab.TabIndex := i;                                  BrowserTab.TabIndex := idx;
5295                          if BrowserTab.Tabs.Count = 0 then begin                          if BrowserTab.Tabs.Count = 0 then begin
5296                                  BrowserNullTab.Thread := nil;                                  BrowserNullTab.Thread := nil;
5297                          end;                          end;
5298                            if(BrowserTab.TabIndex <> -1) and
5299                                    ( TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil) then begin
5300                                    for j := BrowserTab.Tabs.Count - 1 downto 0 do begin
5301                                            if(TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser
5302                                                     = TWebBrowser(FBrowsers[4]) )then
5303                                            begin
5304                                                    TBrowserRecord(BrowserTab.Tabs.Objects[j]).Browser := nil;
5305                                                    break;
5306                                            end;
5307                                    end;
5308                                    TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser
5309                                             :=  TWebBrowser(FBrowsers[4]);
5310                                    TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Repaint := true;
5311                                    FBrowsers.Move(4, 0);
5312                            end;
5313    
5314                          BrowserTab.Tabs.EndUpdate;                          BrowserTab.Tabs.EndUpdate;
5315                          BrowserTab.OnChange(nil);                          BrowserTab.OnChange(nil);
5316                          Exit;                          Exit;
# Line 5796  end; Line 5865  end;
5865    
5866  procedure TGikoForm.BrowserTabChange(Sender: TObject);  procedure TGikoForm.BrowserTabChange(Sender: TObject);
5867  var  var
5868            i, j: Integer;
5869          idx: Integer;          idx: Integer;
5870          ThreadItem: TThreadItem;          ThreadItem: TThreadItem;
5871  begin  begin
# Line 5811  begin Line 5881  begin
5881                          SetContent(BrowserNullTab);                          SetContent(BrowserNullTab);
5882    
5883                  end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin                  end else if(BrowserTab.Tabs.Objects[idx] <> nil) and (BrowserTab.Tabs.Objects[idx] is TBrowserRecord) then begin
5884                            if TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser <> nil then begin
5885                                    j := FBrowsers.IndexOf(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser);
5886                                    if j <> -1 then
5887                                            FBrowsers.Move(j ,0);
5888                            end else begin
5889                                    for i := 0 to BrowserTab.Tabs.Count - 1 do begin
5890                                            if TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser = TWebBrowser(FBrowsers[4]) then
5891                                                    TBrowserRecord(BrowserTab.Tabs.Objects[i]).Browser := nil;
5892                                    end;
5893                                    TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser := TWebBrowser(FBrowsers[4]);
5894                    TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Repaint := true;
5895                                    FBrowsers.Move(4, 0);
5896                            end;
5897                          ThreadItem := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Thread;                          ThreadItem := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Thread;
5898                TOleControl(TBrowserRecord(BrowserTab.Tabs.Objects[idx]).Browser).BringToFront;
5899                          GikoSys.OnlyAHundredRes := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;                          GikoSys.OnlyAHundredRes := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;
5900                          OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;                          OnlyAHundredRes.Checked := TBrowserRecord(BrowserTab.Tabs.Objects[idx]).OnlyHundred;
5901                          SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));                          SetContent(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));
# Line 5858  begin Line 5942  begin
5942                  if idx <> -1 then begin                  if idx <> -1 then begin
5943                          OldIndex := BrowserTab.TabIndex;                          OldIndex := BrowserTab.TabIndex;
5944                          DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));                          DeleteTab(TBrowserRecord(BrowserTab.Tabs.Objects[idx]));
5945                          if idx = OldIndex then begin                          {if idx = OldIndex then begin
5946                                  if BrowserTab.Tabs.Count > idx then                                  if BrowserTab.Tabs.Count > idx then
5947                                          BrowserTab.TabIndex := idx                                          BrowserTab.TabIndex := idx
5948                                  else if BrowserTab.Tabs.Count = idx then                                  else if BrowserTab.Tabs.Count = idx then
5949                                          BrowserTab.TabIndex := idx - 1                                          BrowserTab.TabIndex := idx - 1
5950                                  else if BrowserTab.Tabs.Count > 0 then                                  else if BrowserTab.Tabs.Count > 0 then
5951                                          BrowserTab.TabIndex := 0;                                          BrowserTab.TabIndex := 0;
5952                                    if TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser = nil then begin
5953                                            TBrowserRecord(BrowserTab.Tabs.Objects[BrowserTab.TabIndex]).Browser
5954                                                            := TWebBrowser(FBrowsers[4]);
5955                                            FBrowsers.Move(4, 0);
5956                                    end;
5957                                  BrowserTab.OnChange(nil);                                  BrowserTab.OnChange(nil);
5958    
5959                          end;                          end;
5960                            }
5961                  end;                  end;
5962          //end else if Button = mbRight then begin          //end else if Button = mbRight then begin
5963          //PopupMenuでBrowserTabPoupMenuを指定しているのでここでわざわざ呼び出すと2重になる          //PopupMenuでBrowserTabPoupMenuを指定しているのでここでわざわざ呼び出すと2重になる
# Line 6025  begin Line 6115  begin
6115                          FBrowserComplete := True;                          FBrowserComplete := True;
6116                          if BrowserRecord.FEvent <> nil then                          if BrowserRecord.FEvent <> nil then
6117                                  BrowserRecord.FEvent.Free;                                  BrowserRecord.FEvent.Free;
6118                          FDispHtmlDocument := BrowserRecord.Browser.Document as DispHTMLDocument;                          FDispHtmlDocument := Idispatch(OleVariant(BrowserRecord.Browser.ControlInterface).Document) as DispHTMLDocument;
6119                          BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);                          BrowserRecord.FEvent := THTMLDocumentEventSink.Create(Self, FDispHtmlDocument, HTMLDocumentEvents2);
6120                          BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu;                          BrowserRecord.FEvent.OnContextMenu := OnDocumentContextMenu;
6121                  end;                  end;
# Line 8344  end; Line 8434  end;
8434  procedure TGikoForm.ReloadClick(Sender: TObject);  procedure TGikoForm.ReloadClick(Sender: TObject);
8435  var  var
8436          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
8437            i: Integer;
8438  begin  begin
8439          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin          if GikoSys.FAbon.ReLoadFromNGwordFile =false then begin
8440                  MsgBox(Handle, 'NGワードファイルの再読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);                  MsgBox(Handle, 'NGワードファイルの再読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);
8441          end else begin          end else begin
8442                    for i := BrowserTab.Tabs.Count - 1 downto 0 do
8443                            TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
8444                            
8445                  ThreadItem := GetActiveContent;                  ThreadItem := GetActiveContent;
8446                  if ThreadItem <> nil then                  if ThreadItem <> nil then
8447                          InsertBrowserTab( ThreadItem, True );                          InsertBrowserTab( ThreadItem, True );
# Line 8359  procedure TGikoForm.GoBackClick(Sender: Line 8453  procedure TGikoForm.GoBackClick(Sender:
8453  var  var
8454          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
8455          s: string;          s: string;
8456            i: Integer;
8457  begin  begin
8458          if GikoSys.FAbon.GoForward =false then begin          if GikoSys.FAbon.GoForward =false then begin
8459                  MsgBox(Handle, '一つ前のNGワードファイルの読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);                  MsgBox(Handle, '一つ前のNGワードファイルの読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);
# Line 8367  begin Line 8462  begin
8462                  StatusBar.Panels.Items[2].Text := s;                  StatusBar.Panels.Items[2].Text := s;
8463                  StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);                  StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
8464                  StatusBarResize(Sender);                  StatusBarResize(Sender);
8465                    for i := BrowserTab.Tabs.Count - 1 downto 0 do
8466                            TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
8467    
8468                  ThreadItem := GetActiveContent;                  ThreadItem := GetActiveContent;
8469                  if ThreadItem <> nil then                  if ThreadItem <> nil then
8470                          InsertBrowserTab( ThreadItem, True );                          InsertBrowserTab( ThreadItem, True );
# Line 8378  procedure TGikoForm.GoFowardClick(Sender Line 8476  procedure TGikoForm.GoFowardClick(Sender
8476  var  var
8477          ThreadItem : TThreadItem;          ThreadItem : TThreadItem;
8478          s: string;          s: string;
8479            i: Integer;
8480  begin  begin
8481          if GikoSys.FAbon.GoBack =false then begin          if GikoSys.FAbon.GoBack =false then begin
8482                  MsgBox(Handle, '一つ後ろのNGワードファイルの読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);                  MsgBox(Handle, '一つ後ろのNGワードファイルの読み込みに失敗しました', 'エラー', MB_OK or MB_ICONEXCLAMATION);
# Line 8386  begin Line 8485  begin
8485                  StatusBar.Panels.Items[2].Text := s;                  StatusBar.Panels.Items[2].Text := s;
8486                  StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);                  StatusBar.Panels[2].Width := Max(StatusBar.Canvas.TextWidth(s), 100);
8487                  StatusBarResize(Sender);                  StatusBarResize(Sender);
8488                    for i := BrowserTab.Tabs.Count - 1 downto 0 do
8489                            TBrowserRecord(BrowserTab.Tabs.Objects[i]).Repaint := true;
8490    
8491                  ThreadItem := GetActiveContent;                  ThreadItem := GetActiveContent;
8492                  if ThreadItem <> nil then                  if ThreadItem <> nil then
8493                          InsertBrowserTab( ThreadItem, True );                          InsertBrowserTab( ThreadItem, True );
# Line 9915  begin Line 10017  begin
10017                  if Self.Thread <> nil then begin                  if Self.Thread <> nil then begin
10018                          doc := Idispatch( olevariant(Self.FBrowser.ControlInterface).Document) as IHTMLDocument2;                          doc := Idispatch( olevariant(Self.FBrowser.ControlInterface).Document) as IHTMLDocument2;
10019                          Self.Thread.ScrollTop := doc.Body.ScrollTop;                          Self.Thread.ScrollTop := doc.Body.ScrollTop;
10020                          doc.clear;                          //doc.clear;
10021                  end;                  end;
10022                  Self.FBrowser.Free;                  //Self.FBrowser.Free;
10023          end;          end;
10024    
10025  end;  end;
10026    
10027  procedure TGikoForm.ThreadPanelResize(Sender: TObject);  procedure TGikoForm.ThreadPanelResize(Sender: TObject);
# Line 9926  var Line 10029  var
10029          idx     : Integer;          idx     : Integer;
10030          rec     : TBrowserRecord;          rec     : TBrowserRecord;
10031  begin  begin
10032          idx := BrowserTab.TabIndex;  {       idx := BrowserTab.TabIndex;
10033          if idx >= 0 then begin          if idx >= 0 then begin
10034                  if BrowserTab.Tabs.Objects[ idx ] is TBrowserRecord then begin                  if BrowserTab.Tabs.Objects[ idx ] is TBrowserRecord then begin
10035                          rec := TBrowserRecord( BrowserTab.Tabs.Objects[ idx ] );                          rec := TBrowserRecord( BrowserTab.Tabs.Objects[ idx ] );
10036                          SetWindowPos( rec.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER);                          SetWindowPos( rec.Browser.Handle, HWND_TOPMOST, 0, 0, BrowserPanel.Width, BrowserPanel.Height, SWP_NOACTIVATE or SWP_NOZORDER);
10037                  end;                  end;
10038          end;          end;
10039    }
10040  end;  end;
10041    
10042  procedure TGikoForm.OnlyAHundredResUpdate(Sender: TObject);  procedure TGikoForm.OnlyAHundredResUpdate(Sender: TObject);

Legend:
Removed from v.1.302  
changed lines
  Added in v.1.303

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