今回はDelphiでパネルなどを分離できる機能「フローティング」について、簡単な実現方法を紹介します。
- Delphiを起動し、アプリケーションの新規作成を行います。
- フォームにTPanelコンポーネントを配置します。
(ここではこのPanelをフローティングさせます。Button等、他のコンポーネントでも可能です。) - フォームのDockSiteプロパティをTrueにします。
- PanelのDragKindプロパティをdkDockに、DragModeプロパティをdmAutomaticに設定します。
以上で完成です。実行して動作を確認してみてください。
ただ、このままですとフローティングしたPanelの終了(右上の×)ボタンを押すと
Panelが消えたままになってしまいますので、
フォームのClickイベントで消えてしまったPanelを再表示する例をつけておきます。
procedure TForm1.FormClick(Sender: TObject);
var
R: TRect;
begin
if not Panel1.Visible then
begin
R.Top := Form1.Top;
R.Left := Form1.Left;
R.Bottom := R.Top + Panel1.Height;
R.Right := R.Left + Panel1.Width;
Panel1.ManualFloat(R);
end;
end;
<実行時イメージ>
<関連記事>