大家都知道,使用Delphi的TPopupMenu構件可以制作彈出式菜單。但是我們如何才能制作出類似Photoshop中各種樣式的彈出式菜單呢?(比如,Photoshop的筆刷形狀選擇菜單,見圖)
制作方法如下:
1.打開Delphi, 在Form1中放置一個TButton構件。
2.新建一個窗體,使用默認名字Form2。
3.將Form2的BorderStyle屬性設置為bsNone,這樣將會去掉窗體的標題欄和邊框。
4.在Form2中加入TPanel構件Panel1,將Panel1的BevelInner和BevelOuter屬性設置為bvRaised,將Align屬性設置為alClient。用Panel1的邊框來作為菜單窗體的邊框。
5.在Unit1的Implementation部分的uses中加入Unit2。
6.雙擊Form 1中的按鈕構件Button1,添加如下代碼:
procedure TForm1.Button1ClickSender TObject
var
ShowingPoint TPoint
begin
GetCursorPosShowingPoint // 得到光標的當前坐標
Form2.Left = ShowingPoint.X // 讓Form2在當前光標處顯示
Form2.Top = ShowingPoint.Y
Form2.Show
end
7.在Form2的OnDeactivate事件下添加如下代碼:
procedure TForm2.FormDeactivateSender TObject
begin
Close // 當窗體失去焦點後,關閉自己。
end
8.按F9鍵運行程序,雙擊Button1後,Form2就會像彈出菜單一樣顯示出來,單擊Form1的任意處,Form2將會自動關閉。接下來朋友們就可以在Form2上任意設計自己的彈出菜單了。
以上程序在Windows 2000 + Delphi 5中測試通過。