掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
タブブラウザのタブを素早く削除する方法は (ID:42413)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
皆様よろしくお願いします。 環境はWindows7 Delphi6personalです。 過去ログの「PageControlのページを削除するとエラーがでる」の ママんさんのブラウザのサンプルを元にタブブラウザを作成しています。 タブに多数のサイトを一気に表示するのはうまくいくのですが 完了を待ち一気に削除するのが、とても時間が掛かります。 IE9でもグループで開きグループを閉じる処理に比べ遅いです。 同等ほどとは行かないでしょうが、 知りたいこと:素早くタブを閉じる方法があれば教えてくださいませんか。 下記にテストコードを書きましたが、その部分を簡素にしたものです。 フォームにパネルとボタンを貼り付けてあるだけです。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw_EWB, ExtCtrls, ComCtrls, StdCtrls, SHDocVw_TLB; type TTabSheetEx = class(TTabSheet) private procedure WebBrowser1TitleChange(Sender: TObject; const Text: WideString); procedure WebBrowser1StatusTextChange(Sender: TObject; const Text: WideString); public WebBrowser1 : TWebBrowser; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TForm1 = class(TForm) Panel1: TPanel; PageControl1: TPageControl; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private procedure TabSheetCreate(style:string); public end; var Form1: TForm1; implementation uses Math; {$R *.dfm} //--------------タブ作成クラス------------------------------------------- { TTabSheetEx } constructor TTabSheetEx.Create(AOwner: TComponent); begin inherited; WebBrowser1 := TWebBrowser.Create(self); TOleControl(WebBrowser1).Parent := Self; WebBrowser1.Align := alClient; WebBrowser1.Silent:=true; WebBrowser1.OnTitleChange := WebBrowser1TitleChange; WebBrowser1.OnStatusTextChange := WebBrowser1StatusTextChange; end; destructor TTabSheetEx.Destroy; begin WebBrowser1.Free; inherited; end; procedure TTabSheetEx.WebBrowser1TitleChange(Sender: TObject; const Text: WideString);//タブのキャプション決定 begin Caption:=StringReplace(Text, '&', '&&', [rfReplaceAll]); end; procedure TTabSheetEx.WebBrowser1StatusTextChange(Sender: TObject;const Text: WideString); begin Form1.Caption:=Text; end; //--------------------------------------------------------- { TForm1 } procedure TForm1.TabSheetCreate(style:string);//新規タブ作成 var TabSheetEx:TTabSheetEx; begin Form1.PageControl1.TabWidth:=50; TabSheetEx := TTabSheetEx.Create(PageControl1); TabSheetEx.Parent := PageControl1; TabSheetEx.PageControl := PageControl1; TabSheetEx.Caption:='■'; TabSheetEx.WebBrowser1.Navigate(style); PageControl1.ActivePage := TTabSheet(TabSheetEx); end; procedure TForm1.Button1Click(Sender: TObject);//オープン begin TabSheetCreate('ttp://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=011860'); TabSheetCreate('ttp://freesoft.tvbok.com/tips/core_i7_p6t/windows7_desktop.html'); TabSheetCreate('ttp://pc.nikkeibp.co.jp/article/knowhow/20100831/1027218/?set=ml'); TabSheetCreate('ttp://pc.nikkeibp.co.jp/article/knowhow/20101021/1028064/?P=2&set=ml_a'); TabSheetCreate('ttp://stakasaki.at.webry.info/200703/article_5.html'); TabSheetCreate('ttp://support.microsoft.com/kb/910336/ja'); TabSheetCreate('ttp://pc.nikkeibp.co.jp/article/knowhow/20101021/1028064/?P=2&set=ml_a'); TabSheetCreate('ttp://vanilla.xrea.jp/vista/category5/entry41.html'); TabSheetCreate('ttp://windows.microsoft.com/ja-JP/internet-explorer/help/ie-9/how-do-i-install-or-uninstall-internet-explorer-9'); TabSheetCreate('ttp://windows.microsoft.com/ja-JP/windows7/customize-desktop-gadgets'); TabSheetCreate('ttp://www.atmarkit.co.jp/fwin2k/win2ktips/408expopt/expopt.html'); TabSheetCreate('ttp://www.nikkeibp.co.jp/article/news/20100803/239987/'); TabSheetCreate('ttp://www.sakyou.com/ManualShop/Windows/05_UserAccount/08_UAC-OFF/17_Win7Pro/index.html'); TabSheetCreate('ttp://www.yomiuri.co.jp/net/qanda/20100423-OYT8T01107.htm'); TabSheetCreate('ttp://www15.atwiki.jp/win7/pages/15.html#id_b3d51310'); TabSheetCreate('ttp://yakushima-tonbo.com/windows/Windows7/Windows7_qa_01.htm'); TabSheetCreate('ttp://yakushima-tonbo.com/windows/Windows7_tips_files/index.htm'); end; procedure TForm1.Button2Click(Sender: TObject);//タブ削除 var i:integer; TabSheetEx:TTabSheetEx; begin for i:=PageControl1.PageCount-1 Downto 0 do begin TabSheetEx:= TTabSheetEx(Form1.PageControl1.Pages[i]); TabSheetEx.Free; end; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.