掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
TabControlのタブを任意の場所に作成する。 (ID:19638)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
これは,TabContrlの使い方の問題です. TabControlは,PageControlと違い,ページは一つかありません.したがって, >Child := TformWebBrowser.Create(Application); のような使い方はできません.この使い方はPageControlの場合です. (新しいURLを表示する度にWebBrowserを破棄して,新規作成する場合は別です) サンプルを書きましたので,試してみて下さい. PageControlを使用する方が制御が簡単です.リソースが心配ならば別ですが. //============================================================================= // TabControlにURLの内容を表示する例 // 新規プロジェクトに,TabControlを配置,AlignをalClientにする // Tabsプロパティ(TStrings)でタブを3つ作成(名前はなんでもいい) // TabControl上に,WebBrowserを配置,AlignをAlClientにする. // PopUpMenuを一つ配置し,[新規タブ]の名前で一つだけメニューを作成する. // // presented by Mr.XRAY 2006.1.17 //============================================================================= unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, ComCtrls, Menus, StdCtrls; type TForm1 = class(TForm) TabControl1: TTabControl; WebBrowser1: TWebBrowser; PopupMenu1: TPopupMenu; N1: TMenuItem; procedure FormShow(Sender: TObject); procedure N1Click(Sender: TObject); procedure WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.DFM} //============================================================================= // フォームを表示したら,とりあえずデフォルトのURLを表示 //============================================================================= procedure TForm1.FormShow(Sender: TObject); var AUrl: String; begin AUrl:='http://homepage2.nifty.com/Mr_XRAY/'; WebBrowser1.Navigate(AUrl); end; //============================================================================= // あるタブをクリックしてアクティブにし,そのポップアップメニューの[新規タブ] // をクリックしたら,右に新規にタブを作成し,別のURLを表示 // TabControlはPageControlと違い,ページが一つしかないとこに注意 //============================================================================= procedure TForm1.N1Click(Sender: TObject); var ActiveTabNo: Integer; AUrl: String; begin ActiveTabNo:=TabControl1.TabIndex; TabControl1.Tabs.Insert(ActiveTabNo+1,'読込み中'); TabControl1.TabIndex:=ActiveTabNo+1; AUrl:='http://blog.so-net.ne.jp/bousyo/'; WebBrowser1.Navigate(AUrl); end; //============================================================================= // WebBrowserに文書が表示されたら // 現在アクティブなタブIndexを取得して,そのタブにUrlのLocaltionNameを表示 //============================================================================= procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var ActiveTabNo: Integer; begin ActiveTabNo:=TabControl1.TabIndex; TabControl1.Tabs.Strings[ActiveTabNo]:=WebBrowser1.LocationName; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.