?? b971123.gb_
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>進階篇:為什麼圖片不會立刻顯示出來?</TITLE>
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
<META NAME="Author" CONTENT="KJ Wang">
</HEAD>
<BODY TEXT="#202020" BGCOLOR="#FFFFFF" LINK="#FF0000" VLINK="#000080" ALINK="#FF0000">
<H2 ALIGN=CENTER><A HREF="vbex.htm">VB5 實戰講座</A></H2>
<H3 ALIGN=CENTER><A HREF="../vbweeks.htm">每周一問</A>: 挑戰您的 VB 功力 (進階篇, 97/11/23)</H3>
<H2>
<HR WIDTH="100%"></H2>
<TABLE WIDTH="100%" >
<TR VALIGN=TOP>
<TD NOWRAP>Q:</TD>
<TD>有一程式含有兩個 Form, 其中 Form2 的 Picture 屬性設定成一圖片, 而以下是
Form1 顯示 Form2 的程式:
<UL>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4 WIDTH="250" >
<TR>
<TD>Form2.Show
<P>' 延遲 2 秒 <BR>
Tm1 = Timer <BR>
While Timer - Tm1 < 2 <BR>
Wend</P>
</TD>
</TR>
</TABLE>
</UL>
<P>以上程式的目的是希望顯示 Form2 的圖片兩秒之後, Form1 才繼續執行, 結果竟然是
2 秒之後, Form2 的圖片才顯示出來。 為什麼圖片會延遲顯示呢? 解決之道又如何?</P>
</TD>
</TR>
<TR VALIGN=TOP>
<TD>A:</TD>
<TD>一般而言, 繪圖會比一般的指令來得費時, 因此, Windows 會延後繪圖指令的執行,
也就是說, 直到其他指令都執行完畢之後, 才會輪到繪圖指令的執行, 在以上的
Form1 程式中, 由於呼叫 Form2.Show 之後, 又執行了一個費時 2 秒的 While
回圈, 因此, Form2 的圖片必須等待 2 秒鐘, 才會被描繪出來。
<P>解決的方法有二:</P>
<P><FONT COLOR="#0000FF">方法一</FONT>: 在 While 回圈中增加 DoEvents 的敘述,
如下:</P>
<UL>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4 WIDTH="250" >
<TR>
<TD>
<PRE><FONT SIZE=+1>Form2.Show </FONT></PRE>
<PRE><FONT SIZE=+1>' 延遲 2 秒
Tm1 = Timer
While Timer - Tm1 < 2
<FONT COLOR="#FF0000"> DoEvents
</FONT>Wend</FONT></PRE>
</TD>
</TR>
</TABLE>
</UL>
<P>DoEvents 的作用是「短暫地停止執行」, 由於此一暫停之動作, 使得繪圖指令有機會被執行,
於是 Form2 的圖片便可以在 While 回圈執行的階段就被顯示出來。</P>
<P><FONT COLOR="#0000FF">方法二</FONT>: 在 Form2.Show 之後, 立刻呼叫
Form2.Refresh, 如下:</P>
<UL>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=4 WIDTH="250" >
<TR>
<TD>Form2.Show<BR>
Form2.<FONT COLOR="#FF0000">Refresh</FONT>
<P>' 延遲 2 秒 <BR>
Tm1 = Timer <BR>
While Timer - Tm1 < 2 <BR>
Wend</P>
</TD>
</TR>
</TABLE>
</UL>
<P>Refresh 的作用是告訴 Windows, 不管繪圖動作有多慢, 現在立刻把圖畫出來,
當然, Windows 會照辦的。</P>
</TD>
</TR>
</TABLE>
<P>
<HR WIDTH="100%"></P>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -