?? anniu_3.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>輕輕松松在DELPHI3.0中實(shí)現(xiàn)三態(tài)按鈕</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p align="center"> <font color="#0000c0"></p>
<h2 align="center">輕輕松松在DELPHI3.0中實(shí)現(xiàn)三態(tài)按鈕 </font></h2>
<h3 align="center">北京郵電大學(xué)福建分校 <br>
林穎 </h3>
<p><font color="#ffffff">----</font>
在許多新的軟件中都用到三態(tài)按鈕。所謂的三態(tài)按鈕就是當(dāng)鼠標(biāo)還末移到時,按鈕顯示一種平面圖像(FLAT);當(dāng)鼠標(biāo)移到按鈕時,按鈕呈現(xiàn)凸立體(UP);當(dāng)鼠標(biāo)在按鈕上按下時,按鈕呈現(xiàn)凹立體(DOWN)。
</p>
<p><font color="#ffffff">----</font> 由于DELPHI中有圖像按鈕,能夠?qū)崿F(xiàn)UP和DOWN兩種狀態(tài),因此只需增加FLAT狀態(tài)即可。筆者經(jīng)過研究,發(fā)現(xiàn)有以下兩種方法。
</p>
<p><font color="#ffffff">----</font> <b>1. 修改BITBTN上的GLYPH屬性.</b> </p>
<p><font color="#ffffff">----</font> (1)當(dāng)處于FLAT狀態(tài)時,GLYPH屬性設(shè)置為圖像文件1,為了讓按鈕只是平面地顯示,必須讓圖像文件1的尺寸大于按鈕的實(shí)際尺寸,按鈕就呈現(xiàn)平面狀,可以在
FORM的ONMOUSEMOVE事件上用以下函數(shù)實(shí)現(xiàn): </p>
<pre> Bitbtn1.glyph.loadfromfile(‘文件名1’);</pre>
<p><font color="#ffffff">----</font> (2)當(dāng)處于UP和DOWN狀態(tài)時,GLYPH設(shè)置為圖像文件2。由于BITBTN構(gòu)件本身就具有按鈕的特性,所以對圖像大小沒有特殊要求。可以在BITBTN1的ONMOUSEMOVE事件上用以下函數(shù)實(shí)現(xiàn):
</p>
<pre> Bitbtn1.glyph.loadfromfile(‘文件名2’);</pre>
<p><font color="#ffffff">----</font>
用這種方法實(shí)現(xiàn)的三態(tài)按鈕有一個明顯的不足,由于BITBTN1不斷地從圖像文件LOAD圖像數(shù)據(jù),因此圖像一直閃爍不定,不但影響運(yùn)行速度而且效果不佳。
</p>
<p><font color="#ffffff">----</font> <b>2.修改IMAGE構(gòu)件和BITBTN構(gòu)件的VISIBLE屬性</b>
</p>
<p><font color="#ffffff">----</font> 在FORM的同一個位置設(shè)置大小完全相等的兩個構(gòu)件IMAGE1和BITBTN1,由于一起動FORM時,顯示FLAT狀態(tài),因此把IMAGE1的VISIBLE屬性初值設(shè)為TRUE;把BITBTN1的VISIBLE屬性設(shè)為FALSE。
</p>
<p><font color="#ffffff">----</font> (1)當(dāng)處于FLAT狀態(tài)時,只顯示IMAGE1構(gòu)件。即把IMAGE1的VISIBLE屬性設(shè)為TRUE,把BITBTN1的VISIBLE屬性設(shè)為FALSE。于是FORM的OMMOUSEMOVE事件上調(diào)用如下語句:
</p>
<pre> IMAGE1.VISIBLE:=TRUE;
BITBTN1.VISIBLE:=FALSE;</pre>
<p><font color="#ffffff">----</font> (2)當(dāng)處于UP或DOWN狀態(tài)時,把IMAGE1的VISIBLE屬性設(shè)為FALSE;把BITBTN1的VISIBLE屬性設(shè)為TRUE。因此在IMAGE1和BITBTN1的
ONCLICK事件上分別調(diào)用如下語句: </p>
<pre> IMAGE1.VISIBLE:=FALSE;
BITBTN1.VISIBLE:=TRUE;</pre>
<p><font color="#ffffff">----</font>
使用該方法雖然多用了一個構(gòu)件,但是不必頻繁地裝載圖像數(shù)據(jù),因此運(yùn)行速度快,效果也很好。
</p>
<p><font color="#ffffff">----</font>
以上是我在實(shí)踐的過程中發(fā)現(xiàn)的兩種比較簡單的方法,當(dāng)然還有許多其它的方法也可以實(shí)現(xiàn),愿與各位讀者探討。
</p>
</body>
</html>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -