點擊按鈕 → 無標題列、無邊框視窗出現在滑鼠游標位置 → 點擊視窗外任意處自動關閉,完美模擬 PS 筆刷/圖層樣式選單。

TButton(Button1)。Form2,設定:
BorderStyle := bsNone(移除標題列與邊框)。TPanel (Panel1),Align := alClient,BevelInner := bvRaised、BevelOuter := bvRaised 模擬立體邊框。Unit1 的 implementation 區 uses Unit2。procedure TForm1.Button1Click(Sender: TObject);
var Pt: TPoint;
begin
GetCursorPos(Pt); // 取得螢幕座標
Form2.Left := Pt.X;
Form2.Top := Pt.Y;
Form2.Show; // 非模態顯示
end;
procedure TForm2.FormDeactivate(Sender: TObject);
begin
Close; // 失去焦點即關閉
end;
AnimateWindow(Handle, 150, AW_SLIDE or AW_VER_POSITIVE)。Left + Width > Screen.Width 則 Left := Screen.Width - Width,同理 Top。MonitorFromPoint 取得對應監視器工作區。KeyPreview := True,Esc 關閉,方向鍵切換項目。TPaintBox + OnPaint 繪製圓角、陰影、漸層背景。| 特性 | TPopupMenu | 自訂 Form (bsNone) |
|---|---|---|
| 外觀自訂 | 受限於系統主題 | 完全自由(圓角、陰影、動畫) |
| 控件類型 | 僅選單項 | 任意 VCL 控件 |
| 焦點行為 | 點外自動關閉 | 需手動處理 Deactivate |
| 多螢幕 | 自動處理 | 需自行邊界修正 |