輕輕鬆松在DELPHI3.0中實現三態按鈕 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
輕輕鬆松在DELPHI3.0中實現三態按鈕
北京郵電大學福建分校
林穎
在許多新的軟體中都用到三態按鈕。所謂的三態按鈕就是當滑鼠還末移到時,按鈕顯示一種平面圖像(FLAT);當滑鼠移到按鈕時,按鈕呈現凸立體(UP);當滑鼠在按鈕上按下時,按鈕呈現凹立體(DOWN)。
由於DELPHI中有圖像按鈕,能夠實現UP和DOWN兩種狀態,因此只需增加FLAT狀態即可。筆者經過研究,發現有以下兩種方法。
1. 修改BITBTN上的GLYPH屬性.
(1)當處於FLAT狀態時,GLYPH屬性設置爲圖像文件1,爲了讓按鈕只是平面地顯示,必須讓圖像文件1的尺寸大於按鈕的實際尺寸,按鈕就呈現平面狀,可以在 FORM的ONMOUSEMOVE事件上用以下函數實現:
Bitbtn1.glyph.loadfromfile(‘檔案名1’);
(2)當處於UP和DOWN狀態時,GLYPH設置爲圖像文件2。由於BITBTN構件本身就具有按鈕的特性,所以對圖像大小沒有特殊要求。可以在BITBTN1的ONMOUSEMOVE事件上用以下函數實現:
Bitbtn1.glyph.loadfromfile(‘檔案名2’);
用這種方法實現的三態按鈕有一個明顯的不足,由於BITBTN1不斷地從圖像文件LOAD圖像資料,因此圖像一直閃爍不定,不但影響運行速度而且效果不佳。
2.修改IMAGE構件和BITBTN構件的VISIBLE屬性
在FORM的同一個位置設置大小完全相等的兩個構件IMAGE1和BITBTN1,由於一起動FORM時,顯示FLAT狀態,因此把IMAGE1的VISIBLE屬性初值設爲TRUE;把BITBTN1的VISIBLE屬性設爲FALSE。
(1)當處於FLAT狀態時,只顯示IMAGE1構件。即把IMAGE1的VISIBLE屬性設爲TRUE,把BITBTN1的VISIBLE屬性設爲FALSE。於是FORM的OMMOUSEMOVE事件上調用如下語句:
IMAGE1.VISIBLE:=TRUE;
BITBTN1.VISIBLE:=FALSE;
(2)當處於UP或DOWN狀態時,把IMAGE1的VISIBLE屬性設爲FALSE;把BITBTN1的VISIBLE屬性設爲TRUE。因此在IMAGE1和BITBTN1的 ONCLICK事件上分別調用如下語句:
IMAGE1.VISIBLE:=FALSE;
BITBTN1.VISIBLE:=TRUE;
使用該方法雖然多用了一個構件,但是不必頻繁地裝載圖像資料,因此運行速度快,效果也很好。
以上是我在實踐的過程中發現的兩種比較簡單的方法,當然還有許多其他的方法也可以實現,願與各位讀者探討。 **********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind to make knowledge together!
希望能大家敞開心胸,將知識寶庫結合一起
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |