?? 021.htm
字號:
<HTML><HEAD><meta http-equiv="Content-Type" content="text/html; charset=GB2312"><TITLE>-->DELPHI專題--用戶界面-->輕輕松松在DELPHI3.0中實現三態按鈕</TITLE>
<META NAME="keywords" CONTENT=" DELPHI專題--用戶界面 輕輕松松在DELPHI3.0中實現三態按鈕">
<META NAME="description" CONTENT=" - DELPHI專題--用戶界面 - 輕輕松松在DELPHI3.0中實現三態按鈕">
<style>
<!--
#page {position:absolute; z-index:0; left:0px; top:0px}
.tt3 {font: 9pt/12pt "宋體"}
.tt2 {font: 12pt/15pt "宋體"}
a {text-decoration:none}
a:hover {color: blue;text-decoration:underline}
-->
</style>
</HEAD>
<a href="index1.html">返回</a>
<body text="#000000" aLink=#9900ff link=#006699 vLink=#006699 bgcolor="#FFFFFF" leftmargin="3" topmargin="3" marginheight="3" marginwidth="3">
<TABLE WIDTH="100%" CELLPADDING=10 CELLSPACING=0 BORDER=0>
<TR>
<TD class="tt2" bgcolor="#F5F8F8" width="84%"><center><B><FONT style="FONT-SIZE: 16.5pt" COLOR="#FF6666" FACE="楷體_GB2312">輕輕松松在DELPHI3.0中實現三態按鈕</FONT></B></center>
<hr color="#EE9B73" size="1" width="94%">
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
在許多新的軟件中都用到三態按鈕。所謂的三態按鈕就是當鼠標還末移到時,按鈕顯示一種平面圖像(FLAT);當鼠標移到按鈕時,按鈕呈現凸立體(UP);當鼠標在按鈕上按下時,按鈕呈現凹立體(DOWN)。
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> 由于DELPHI中有圖像按鈕,能夠實現UP和DOWN兩種狀態,因此只需增加FLAT狀態即可。筆者經過研究,發現有以下兩種方法。
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> <b>1. 修改BITBTN上的GLYPH屬性.</b>
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> (1)當處于FLAT狀態時,GLYPH屬性設置為圖像文件1,為了讓按鈕只是平面地顯示,必須讓圖像文件1的尺寸大于按鈕的實際尺寸,按鈕就呈現平面狀,可以在
FORM的ONMOUSEMOVE事件上用以下函數實現: </span></p>
<BR>
<pre><span style="font-size: 9pt"> Bitbtn1.glyph.loadfromfile(‘文件名1’);</span></pre>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> (2)當處于UP和DOWN狀態時,GLYPH設置為圖像文件2。由于BITBTN構件本身就具有按鈕的特性,所以對圖像大小沒有特殊要求。可以在BITBTN1的ONMOUSEMOVE事件上用以下函數實現:
</span></p>
<BR>
<pre><span style="font-size: 9pt"> Bitbtn1.glyph.loadfromfile(‘文件名2’);</span></pre>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
用這種方法實現的三態按鈕有一個明顯的不足,由于BITBTN1不斷地從圖像文件LOAD圖像數據,因此圖像一直閃爍不定,不但影響運行速度而且效果不佳。
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> <b>2.修改IMAGE構件和BITBTN構件的VISIBLE屬性</b>
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> 在FORM的同一個位置設置大小完全相等的兩個構件IMAGE1和BITBTN1,由于一起動FORM時,顯示FLAT狀態,因此把IMAGE1的VISIBLE屬性初值設為TRUE;把BITBTN1的VISIBLE屬性設為FALSE。
</span></p>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> (1)當處于FLAT狀態時,只顯示IMAGE1構件。即把IMAGE1的VISIBLE屬性設為TRUE,把BITBTN1的VISIBLE屬性設為FALSE。于是FORM的OMMOUSEMOVE事件上調用如下語句:
</span></p>
<BR>
<pre><span style="font-size: 9pt"> IMAGE1.VISIBLE:=TRUE;
BITBTN1.VISIBLE:=FALSE;</span></pre>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font> (2)當處于UP或DOWN狀態時,把IMAGE1的VISIBLE屬性設為FALSE;把BITBTN1的VISIBLE屬性設為TRUE。因此在IMAGE1和BITBTN1的
ONCLICK事件上分別調用如下語句: </span></p>
<BR>
<pre><span style="font-size: 9pt"> IMAGE1.VISIBLE:=FALSE;
BITBTN1.VISIBLE:=TRUE;</span></pre>
<BR>
<p><span style="font-size: 9pt"><font color="#ffffff">----</font>
使用該方法雖然多用了一個構件,但是不必頻繁地裝載圖像數據,因此運行速度快,效果也很好。
</span></p>
<hr color="#EE9B73" size="1" width="94%">
</TD>
</TR>
</table>
</BODY></HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -