掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ページコントロールを動的に削除 (ID:26148)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
これは、ユーザーメッセージを定義して、PostMessageする例です。 const WM_TabDelete = WM_APP +400; type TForm1 = class(TForm) Button1: TButton; PageControl1: TPageControl; procedure Button1Click(Sender: TObject); private { Private 宣言 } procedure WMTabDelete(var Msg: TMessage); message WM_TabDelete; procedure ButtonCloseClick(Sender: TObject); public { Public 宣言 } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var tab: TTabSheet; btn: TButton; begin tab:= TTabSheet.Create(self); tab.PageControl:= PageControl1; PageControl1.ActivePage:= tab; btn:= TButton.Create(tab); btn.Caption:= '×'; btn.SetBounds(10, 10, 100, 20); btn.Parent:= tab; btn.OnClick:= ButtonCloseClick; end; procedure TForm1.ButtonCloseClick(Sender: TObject); begin //これだとエラーになる //if PageControl1.ActivePage<>nil then // PageControl1.ActivePage.Free; PostMessage(Handle, WM_TabDelete, 0, 0); end; procedure TForm1.WMTabDelete(var Msg: TMessage); begin if PageControl1.ActivePage<>nil then PageControl1.ActivePage.Free; end; end.
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.