掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
PageControlのページを削除するとエラーがでる (ID:22384)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ちょっと上見てませんが、こんな感じです。 D6perへの書き換えはもう知ってますよね。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, ExtCtrls, ComCtrls, StdCtrls; type TIETabSheet = class(TTabSheet) private procedure BrowserNavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); public Browser : TWebBrowser; constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TForm1 = class(TForm) PCBrowser: TPageControl; Panel1: TPanel; EditURL: TEdit; BtnNavigate: TButton; BtnNewPage: TButton; BtnClose: TButton; procedure BtnNavigateClick(Sender: TObject); procedure BtnNewPageClick(Sender: TObject); procedure BtnCloseClick(Sender: TObject); private { Private 宣言 } procedure AddNewPage(URL:String); procedure ClosePage(Index:Integer); procedure NavigatePage(Index:Integer; URL:String); public { Public 宣言 } end; var Form1: TForm1; implementation uses Math; {$R *.dfm} { TIETabSheet } procedure TIETabSheet.BrowserNavigateComplete2(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin //タブのキャプション決定 Caption:= Browser.LocationName; end; constructor TIETabSheet.Create(AOwner: TComponent); begin inherited; //タブシートの作成と同時にブラウザ作成 Browser := TWebBrowser.Create(self); TOleControl(Browser).Parent := Self; Browser.Align := alClient; //ナビゲート完了時の処理 Browser.OnNavigateComplete2 := BrowserNavigateComplete2; end; destructor TIETabSheet.Destroy; begin //タブシートの破棄と同時にブラウザ破棄 Browser.Free; inherited; end; { TForm1 } //新規タブ procedure TForm1.AddNewPage(URL: String); var IETab:TIETabSheet; begin IETab := TIETabSheet.Create(PCBrowser); IETab.Parent := PCBrowser; IETab.PageControl := PCBrowser; IETab.Browser.Navigate(URL); PCBrowser.ActivePage := TTabSheet(IETab); end; procedure TForm1.BtnNavigateClick(Sender: TObject); var i:Integer; begin i := PCBrowser.ActivePageIndex; if i<0 then AddNewPage(EditURL.Text) else NavigatePage(i,EditURL.Text); end; //タブのURL変更 procedure TForm1.NavigatePage(Index: Integer; URL: String); var IETab:TIETabSheet; begin IETab := TIETabSheet(PCBrowser.Pages[Index]); IETab.Browser.Navigate(URL); end; procedure TForm1.BtnNewPageClick(Sender: TObject); begin AddNewPage(EditURL.Text); end; procedure TForm1.BtnCloseClick(Sender: TObject); begin ClosePage(PCBrowser.ActivePageIndex); end; //タブ削除 procedure TForm1.ClosePage(Index: Integer); var IETab:TIETabSheet; begin if Index<0 then exit; IETab := TIETabSheet(PCBrowser.Pages[Index]); IETab.Free; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.