MDIの親フォーム1つ(MainForm)と子フォーム2つ(Form1,Form2)
を作成してMainFormからForm1を起動させるところまでできました。
このForm1にタブコントロールを置いてForm2をドッキングして
表示させようとしていますが、うまくいきません。
Delphi5の環境です。
TFormPanelのコンポーネントを使用すると似たようなことができる
のですが、できれば使わずにやりたいと思います。
Form2の作成は、タブを切り替えたときにやっているのですが、
タイミングに問題があるのでしょうか?
また、特定の子ウィンドウを削除する方法もわかりません。
何か良い方法は、無いでしょうか?
{===Form1のタブを切り替えたとき===}
procedure TForm1.TabCtrlChange(Sender: TObject);
var Child01: TForm2;
i: Integer;
begin
// ドッキング画面の表示切替
with TabCtrl do begin
if (TabIndex >= 0) and (TabIndex < Tabs.Count) then begin
// *ここで表示中のドッキング画面の削除がいると思う。* //
// ドッキング画面を設定する
if Tabs[TabIndex] = ' AAA ' then begin
{ MDI 子ウィンドウを作成する }
Child01 := TForm2.Create(Application);
Child01.Caption := Caption;
end;
end;
end;
end;
{===Form2のCreate時===}
procedure TForm2.FormCreate(Sender: TObject);
begin
//Form1にドッキング
ManualDock( TForm1(MainForm.ActiveMDIChild), nil, AlClient );
end;
ツイート | ![]() |