各位親愛的讀者,在delphi編程實戰中我們可以使用按鈕控件來制作程序中的按鈕鍵。但是在使用其它軟件時,我們常常可以看到透明按鈕的效果。那麼如何在Delphi中實現透明按鈕的效果?筆者在互聯網搜索了不少時間也沒有找到這方面的控件,於是決定自己DIY一番,下面筆者就將自己的經驗與廣大讀者共享一番。
要實現透明按鈕,共需要三個控件-image、label、bevel。其中image控件是為了突出透明的效果而放置的(做為背景),label則是顯示按鍵上的字。而bevel則是顯示出一個立體框。(通過這個控件可以實現鼠標移到按鈕上時顯示出凸出的效果)下面我們就來看看具體的步驟吧。
1、 請先在Delphi6.0中建一個工程文件
2、 請先選擇一個圖片,並注意其大小。然後將窗體調成與圖片一樣大小即可。
3、 然後在窗體上放置一個image控件,將其Align屬性調為alclIEnt,這樣圖片的大小便與窗體的大小一模一樣可以做為背景了。然後選擇picture屬性並點擊小按鈕,在彈出的窗口中按下load鍵選擇你所要做為背景的圖片。
4、 接著在窗體上再放置一個label控件,合理設置按鈕的文字內容及字體大小後。單擊Transparent屬性這樣便將label設為了透明。
5、 最後在窗體上放置一個bevel控件。將shape屬性設為bsBOX,然後將style屬性設為bsRaise(這樣為突然出效果),visible屬性改為false(這樣程序在運行時該控件不可見)。
6、 合理設置label與bevel控件的位置,使得bevel與label控件的位置及位置剛剛好一致,假如您覺得使用鼠標調整位置比較難。可以用Ctrl+箭頭來微移控件,用Shift+箭頭微調控件的大小。
下面我們就開始編程吧,請在代碼窗口中設置下列事件及語句。
procedure TForm1.Label1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
Bevel1.visible:=true;
//使得bevel控件可視
label1.BringToFront;
//將label1控件置於最前方以保證onclick事件能執行
end;
procedure TForm1.Label1Click(Sender: TObject);
begin
//在此加入點擊按鈕時需要執行的代碼即可
end;
procedure TForm1.Image1MouseMove(Sender: TObject;
Shift: TShiftState; X,Y: Integer);
begin
Bevel1.visible:=false;
//當鼠標在image控件移動時,使bevel控件不可視按鈕不凸起
end;
另外為了保證透明按鈕看起來不是很單調您還可以在label控件附近放一個圖標,這樣可以讓使用者看起來更加明了。