ちなみに、同時にフォームを半透明にする処理も加えている。
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.Menus ; type TMainForm = class(TForm) PopupMenu1: TPopupMenu; TrayIcon1: TTrayIcon; MainPanel: TPanel; procedure FormCreate(Sender: TObject); private { Private 宣言 } //AMovePanel : TplMovePanel; public { Public 宣言 } protected procedure WmNCHitTest(var msg: TWmNCHitTest); message WM_NCHITTEST; end; var MainForm: TMainForm; implementation {$R *.dfm} procedure TMainForm.FormCreate(Sender: TObject); var dwExStyle : Cardinal; begin //半透明処理 dwExStyle := GetWindowLong( Handle, GWL_EXSTYLE); dwExStyle := dwExStyle or WS_EX_LAYERED; SetWindowLong( Handle, GWL_EXSTYLE, dwExStyle); SetLayeredWindowAttributes(Handle,0,200,LWA_ALPHA); //タイトルバー非表示 Borderstyle :=bsnone; end; procedure TMainForm.WmNCHitTest(var msg: TWmNCHitTest); begin //継承元のメッセージの実行 inherited; //これ以降のコードを実行しなければ通常のTPanelと同じ動作となる if not (csDesigning in ComponentState) then begin //クライアント領域がクリックされた場合 if Msg.Result=htClient then begin //フォーカス移動(文字入力が可能な状態に)してキャプションバーだと思わせる SetFocus; msg.Result := HTCAPTION; end; end; end; end.