?? 43.asp
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>VB 內(nèi)功講座(一)</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=big5">
<META NAME="Author" CONTENT="KJ Wang">
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]">
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#808080" ALINK="#FF0000">
<H1 ALIGN=CENTER><B><FONT COLOR="#0000FF">VB 程式設(shè)計(jì)內(nèi)功講座(一)</FONT><FONT COLOR="#008080"><FONT SIZE=+0> /王國(guó)榮</FONT></FONT></B></H1>
<CENTER><P>
<HR WIDTH="100%"></P></CENTER>
<CENTER><TABLE WIDTH="90%" >
<TR>
<TD>近 幾 年 來(lái) , 視 覺(jué) 化 軟 體 開(kāi) 發(fā) 工 具 大 行 其 道 , 尤 其 自 "Visual"
Basic 成 功 以 來(lái) , 其 他 軟 體 開(kāi) 發(fā) 工 具 亦 紛 紛 起 而 效 之 , 除
了 在 名 稱(chēng) 上 冠 上 Visual 之 外 , 視 覺(jué) 化 設(shè) 計(jì) 亦 無(wú) 不 成 為 必 備
之 功 能 , 宛 如 視 覺(jué) 化 設(shè) 計(jì) 就 是 軟 體 開(kāi) 發(fā) 的 萬(wàn) 靈 丹 。
<P>筆 者 相 信 視 覺(jué) 化 設(shè) 計(jì) 可 協(xié) 助 我 們 更 快 速 地 開(kāi) 發(fā) 出 應(yīng) 用
軟 體 , 但 不 可 否 認(rèn) 的 , 軟 體 的 開(kāi) 發(fā) 過(guò) 程 中 , 最 常 遭 遇 的
問(wèn) 題 還 是 : 程 式 有 沒(méi) 有 bug、 執(zhí) 行 效 能 如 何 、 是 否 符 合 使
用 者 的 需 求 … 等 , 而 如 何 克 服 這 些 問(wèn) 題 則 取 決 於 程 式 設(shè)
計(jì) 者 的 功 力 , 而 不 在 視 覺(jué) 化 開(kāi) 發(fā) 工 具 上 面 ?! ?</P>
<P>怎 樣 加 強(qiáng) 程 式 設(shè) 計(jì) 的 功 力 呢 ? 閉 門(mén) 苦 修 個(gè) 三 年 五 載 ?
那 倒 不 必 , 有 沒(méi) 有 速 成 班 呢 ? 筆 者 覺(jué) 得 沒(méi) 有 , 但 的 確 有
若 干 重 要 的 環(huán) 節(jié) , 若 能 打 通 , 則 可 縮 短 苦 練 的 功 夫 , 本
期 就 讓 筆 者 為 您 節(jié) 說(shuō) 這 些 環(huán) 節(jié) ?! ?<BR>
</P>
</TD>
</TR>
</TABLE></CENTER>
<P><A NAME="S00"></A>
<HR WIDTH="100%"><B><FONT COLOR="#0000FF"><FONT SIZE=+2>本 文 大 綱</FONT></FONT></B>
</P>
<UL>
<TABLE>
<TR>
<TD WIDTH="250"><IMG SRC="BLUEBALL.gif" HEIGHT=15 WIDTH=21><A HREF="#S0">變
數(shù)</A></TD>
<TD><IMG SRC="BLUEBALL.gif" HEIGHT=15 WIDTH=21><A HREF="#S3">表 單</A></TD>
</TR>
<TR>
<TD><IMG SRC="BLUEBALL.gif" HEIGHT=15 WIDTH=21><A HREF="#S1">物 件</A></TD>
<TD><IMG SRC="BLUEBALL.gif" HEIGHT=15 WIDTH=21><A HREF="#S4">結(jié) 語(yǔ)</A></TD>
</TR>
<TR>
<TD><IMG SRC="BLUEBALL.gif" HEIGHT=15 WIDTH=21><A HREF="#S2">控 制 元 件</A></TD>
<TD></TD>
</TR>
</TABLE>
<P> </P>
</UL>
<P>
<HR WIDTH="100%"></P>
<H2><A NAME="S0"></A><FONT COLOR="#0000FF">變數(shù)</FONT></H2>
<UL>
<P>變 數(shù) , 這 應(yīng) 該 是 基 礎(chǔ) 的 基 礎(chǔ) 吧 , 這 麼 簡(jiǎn) 單 的 東 西 也 能
夠 增 強(qiáng) 程 式 設(shè) 計(jì) 的 功 力 ? 如 果 您 這 麼 想 , 那 就 大 錯(cuò) 特 錯(cuò)
了 , 變 數(shù) 猶 如 程 式 中 的 血 液 , 如 果 程 式 病 了 , 最 可 能 的
原 因 就 是 血 液 遭 受 病 毒 的 侵 襲 , 不 徹 底 研 究 血 液 , 便 很
難 把 生 病 的 程 式 治 好 。</P>
</UL>
<H3><U>組成變數(shù)的四大要素</U></H3>
<UL>
<P>什 麼 是 變 數(shù) ? 我 們 寫(xiě) 一 個(gè) 數(shù) 學(xué) 方 程 式 , 假 設(shè) 是 : <BR>
</P>
<UL>
<P><FONT COLOR="#3333FF">X = Y + 10</FONT></P>
</UL>
<P>這 里 面 就 有 兩 個(gè) 變 數(shù) , 一 個(gè) 是 X, 一 個(gè) 是 Y。 X 及 Y 在 這
里 是 變 數(shù) 的 「 名 稱(chēng) 」 ; 而 當(dāng) Y 等 於 2 時(shí) , X 等 於 12, 此 時(shí)
2 及 12 分 別 是 變 數(shù) X 與 Y 的 「 值 」 。 </P>
<P>以 上 是 我 們 從 數(shù) 學(xué) 方 程 式 中 所 看 到 的 變 數(shù) , 它 包 含 兩
個(gè) 元 素 : 名 稱(chēng) 與 值 。 若 從 電 腦 的 角 度 來(lái) 看 , X 的 值 12 必
須 儲(chǔ) 存 在 某 一 個(gè) 地 方 , 也 就 是 記 憶 體 的 某 一 個(gè) 「 位 址 」
之 下 , 所 以 位 址 又 是 變 數(shù) 的 另 一 個(gè) 元 素 。 </P>
<P>為 了 表 達(dá) 一 個(gè) 變 數(shù) , 只 有 以 上 三 個(gè) 元 素 往 往 還 是 不 夠
的 , 舉 例 來(lái) 說(shuō) : <BR>
</P>
<UL>
<P><FONT COLOR="#3333FF">A = "RUN!VB "</FONT></P>
</UL>
<P>這 時(shí) 候 儲(chǔ) 存 變 數(shù) A(等 於 "RUN!VB")所 需 的 空 間 , 顯
然 比 儲(chǔ) 存 變 數(shù) X(等 於 12)所 需 的 空 間 來(lái) 得 大 , 而 且 連 操 作
兩 種 變 數(shù) 的 方 式 也 會(huì) 有 所 差 異 , 例 如 我 們 可 以 這 樣 寫(xiě) X/2,
但 如 果 我 們 這 樣 寫(xiě) A/2 就 沒(méi) 有 意 義 了 , 為 了 區(qū) 別 特 性 不 同
的 變 數(shù) , 程 式 語(yǔ) 言 中 的 變 數(shù) 必 須 再 增 加 一 個(gè) 元 素 「 資 料
型 別 」 , 以 前 面 的 例 子 來(lái) 看 , 變 數(shù) X 是 整 數(shù) (Integer)型 別
, 而 變 數(shù) A 是 字 串 (String)型 別 。 </P>
<P>綜 合 以 上 的 討 論 , 我 們 可 以 用 以 下 四 個(gè) 元 素 : 「 名 稱(chēng)
」 、 「 資 料 型 別 」 、 「 位 址 」 、 及 「 值 」 來(lái) 表 示 一 個(gè) 變
數(shù) , 如 圖 -1, 在 圖 -1中 , 由 於 「 值 」 是 儲(chǔ) 存 在 某 一 個(gè) 「 位
址 」 的 記 憶 體 里 面 的 , 所 以 把 它 畫(huà) 在 位 址 的 框 框 里 面 。</P>
<CENTER><P><A HREF="43-1.gif">圖 -1 變 數(shù) 的 四 個(gè) 組 成 元 素</A> </P></CENTER>
<P>利 用 以 上 四 個(gè) 元 素 來(lái) 表 示 變 數(shù) , 可 以 解 釋 一 些 平 常 想
當(dāng) 然 爾 的 敘 述 , 如 圖 -2 的 「 X = Y + 10」 : (假 設(shè) Y 的 值 等 於
123)</P>
<CENTER><P><BR>
<A HREF="43-2.gif">圖 -2 敘 述 「 X = Y + 10」 的 運(yùn) 算 過(guò) 程</A> </P></CENTER>
<P>這 里 順 便 介 紹 兩 個(gè) 術(shù) 語(yǔ) : r-value 及 l-value。 r-value 是 right
value 的 縮 寫(xiě) , 表 示 等 號(hào) 右 邊 的 變 數(shù) , 如 例 子 中 的 Y, 實(shí) 質(zhì)
上 代 表 的 是 變 數(shù) 的 「 值 」 , l-value 是 left value 的 縮 寫(xiě) , 表
示 等 號(hào) 左 邊 的 變 數(shù) , 如 例 子 中 的 X, 實(shí) 質(zhì) 上 代 表 的 是 變 數(shù)
的 「 位 址 」 。 </P>
<P>以 上 我 們 用 變 數(shù) 的 組 成 元 素 來(lái) 解 釋 簡(jiǎn) 單 的 例 子 , 看 起
來(lái) 沒(méi) 有 特 別 的 價(jià) 值 , 但 這 是 變 數(shù) 的 根 本 道 理 , 它 同 時(shí) 可
以 用 來(lái) 解 說(shuō) 復(fù) 雜 、 以 及 容 易 讓 人 搞 錯(cuò) 的 例 子 , 請(qǐng) 務(wù) 必 瞭
解 這 幾 個(gè) 元 素 的 意 義 。 </P>
<P>瞭 解 變 數(shù) 的 組 成 元 素 之 後 , 就 不 容 易 被 VB 的 「 定 型 變
數(shù) 」 及 「 不 定 型 變 數(shù) 」 給 搞 暈 了 , 茲 說(shuō) 明 如 下 : </P>
<P><FONT COLOR="#CC0000">◆ 定型變數(shù)</FONT> </P>
<P>此 一 類(lèi) 型 的 變 數(shù) 在 宣 告 時(shí) 會(huì) 指 明 變 數(shù) 的 「 資 料 型 別 」
, 例 如 : <BR>
</P>
<UL>
<P><FONT COLOR="#000080">Dim X As Integer ' X 是整數(shù)型別 <BR>
Dim S As String ' S 是字串型別 <BR>
</FONT> </P>
</UL>
<CENTER><P><A HREF="43-3.gif">圖-3 定型變數(shù)</A> </P></CENTER>
<P>此 一 類(lèi) 型 變 數(shù) 最 大 的 特 色 在 於 其 資 料 型 別 是 「 固 定 的
」 , 也 就 是 說(shuō) , 當(dāng) 我 們 宣 告 變 數(shù) 時(shí) , 指 定 給 它 某 一 型 別
後 , 它 就 永 遠(yuǎn) 是 那 個(gè) 型 別 , 而 且 將 來(lái) 就 只 能 與 型 別 「 相
同 」 或 「 相 容 」 的 變 數(shù) 做 運(yùn) 算 , 舉 例 來(lái) 說(shuō) , 以 下 的 例 子
會(huì) 出 現(xiàn) 錯(cuò) 誤 : <BR>
</P>
<UL>
<P><FONT COLOR="#000080">Dim X as Integer <BR>
X = "這是字串" ' 執(zhí)行時(shí)會(huì)出現(xiàn)「型態(tài)不符合」的訊息 <BR>
</FONT> </P>
</UL>
<P><FONT COLOR="#CC0000">◆ 不定型變數(shù)</FONT> </P>
<P>什 麼 是 不 定 型 變 數(shù) ? 請(qǐng) 看 以 下 例 子 : <BR>
</P>
<UL>
<P><FONT COLOR="#000080">Dim X ' 宣告一個(gè)變數(shù) X,但未指定資料型別 <BR>
X = 123 ' 此時(shí) X 的資料是「整數(shù)」型別 <BR>
... <BR>
X = "VB" ' 後來(lái)又變成了「字串」型別 <BR>
</FONT> </P>
</UL>
<CENTER><P><A HREF="43-4.gif">圖 -4 不 定 型 變 數(shù) 在 不 同 時(shí) 間 被 指
定 成 不 同 的 資 料 型 別</A> </P></CENTER>
<P>變 數(shù) X 在 某 一 個(gè) 時(shí) 間 被 指 定 成 「 整 數(shù) 」 的 資 料 型 別 ,
但 是 後 來(lái) 它 又 被 指 定 成 另 一 種 資 料 型 別 ─ 「 字 串 」 , 像
X 這 樣 , 資 料 型 別 可 以 變 來(lái) 變 去 的 變 數(shù) 就 是 「 不 定 型 」
變 數(shù) 。 </P>
<P>不 定 型 變 數(shù) 的 缺 點(diǎn) 是 執(zhí) 行 效 率 比 較 差 , 為 什 麼 呢 ? 由
於 它 的 資 料 型 別 是 可 變 動(dòng) 的 , 因 此 每 次 執(zhí) 行 時(shí) 必 須 先 判
斷 變 數(shù) 當(dāng) 時(shí) 的 資 料 型 別 , 無(wú) 形 中 增 加 了 執(zhí) 行 上 的 負(fù) 擔(dān) 。
</P>
<P>不 過(guò) 您 也 別 把 不 定 型 變 數(shù) 想 得 太 糟 糕 , 上 述 的 「 額 外
負(fù) 擔(dān) 」 對(duì) 大 部 份 的 程 式 來(lái) 說(shuō) , 其 影 響 都 相 當(dāng) 有 限 , 一 般
而 言 需 要 注 意 的 地 方 是 避 免 在 費(fèi) 時(shí) 較 久 的 回 圈 中 使 用 不
定 型 變 數(shù) , 例 如 : <BR>
<BR>
</P>
<UL>
<P><FONT COLOR="#000099">Dim X</FONT> <BR>
<FONT COLOR="#000099">Dim I</FONT> <BR>
<FONT COLOR="#000099"> </FONT> <BR>
<FONT COLOR="#000099">For I = 0 To 30000</FONT> </P>
<UL>
<P><FONT COLOR="#000099">X = "AAAA"</FONT></P>
</UL>
<P><FONT COLOR="#000099">Next I</FONT></P>
</UL>
<P>如 果 我 們 將 Dim X 及 Dim I 分 別 修 改 成 Dim X As String 及 Dim
I As Integer, 則 執(zhí) 行 速 度 將 有 明 顯 的 改 善 。 </P>
<P>反 觀 不 定 型 變 數(shù) 有 什 麼 優(yōu) 點(diǎn) 呢 ? 首 先 是 它 比 較 接 近 人
類(lèi) 的 思 考 模 式 。 誰(shuí) 規(guī) 定 變 數(shù) 一 旦 被 指 定 成 某 一 種 資 料 型
別 後 , 就 不 能 改 變 了 , 所 以 變 數(shù) 的 型 別 可 以 變 來(lái) 變 去 本
來(lái) 就 比 較 容 易 使 用 , 此 外 , 它 也 比 定 型 變 數(shù) 更 容 易 應(yīng) 用
到 物 件 導(dǎo) 向 的 程 式 中 , 羭 個(gè) 例 子 : 假 設(shè) 我 們 在 程 式 中 會(huì)
使 用 到 許 多 物 件 , 而 這 些 物 件 各 具 有 不 同 的 資 料 型 別 ,
為 了 管 理 這 些 物 件 , 我 們 想 把 它 們 集 中 放 在 一 起 , 其 中
最 簡(jiǎn) 便 的 方 式 就 是 采 用 陣 列 , 所 以 程 式 可 能 是 : </P>
<P><FONT COLOR="#000099"> Set ObjArr(1) = 物件_1</FONT> <BR>
<FONT COLOR="#000099"> Set ObjArr(2) = 物件_2</FONT> <BR>
<FONT COLOR="#000099"> ...</FONT> <BR>
<FONT COLOR="#000099"> Set ObjArr(N) = 物件_N</FONT> </P>
<P>由 於 ObjArr 是 一 個(gè) 陣 列 , 假 如 我 們 把 它 宣 告 成 「 定 型 變
數(shù) 」 , 那 麼 該 將 它 定 義 成 「 物 件 _1」 的 資 料 型 別 、 還 是
「 物 件 _2」 的 資 料 型 別 , 還 是 … , 顯 然 是 行 不 通 的 , 如
果 把 這 個(gè) 陣 列 宣 告 成 「 不 定 型 變 數(shù) 」 , 則 陣 列 中 的 每 一
個(gè) 元 素 就 可 以 依 程 式 執(zhí) 行 時(shí) 的 狀 況 來(lái) 改 變 其 資 料 型 別 ,
自 然 而 然 就 滿 足 了 這 個(gè) 需 求 。 <BR>
</P>
</UL>
<H3><U>不同資料型別的「值」轉(zhuǎn)換</U></H3>
<UL>
<P>當(dāng) 我 們 將 一 個(gè) 單 精 準(zhǔn) 度 型 別 (Single)的 數(shù) 值 9.8 指 定 給 一
個(gè) 「 不 定 型 」 變 數(shù) X 時(shí) , 此 一 不 定 型 變 數(shù) X 除 了 「 值 」 元
素 會(huì) 變 成 9.8 之 外 , 「 資 料 型 別 」 元 素 則 會(huì) 變 成 Single,
但 如 果 我 們 將 同 樣 的 9.8 指 定 給 一 個(gè) 整 數(shù) (Integer)型 別 的 變
數(shù) Y, 結(jié) 果 又 如 何 呢 ? 此 時(shí) 由 於 Y 為 「 定 型 」 變 數(shù) , 其 「
資 料 型 別 」 元 素 (等 於 Integer)是 不 可 變 的 , 因 此 , 9.8 必 須
被 轉(zhuǎn) 換 成 整 數(shù) , 然 後 才 指 定 到 Y 的「值 」 元 素 中 。</P>
<CENTER><P><BR>
<A HREF="43-5.gif">圖-5 同一數(shù)值,指定給不同型別變數(shù)後的差異</A> </P></CENTER>
<P>由 於 不 同 型 別 的 變 數(shù) 能 夠 互 相 指 定 與 運(yùn) 算 , 所 以 我 們
經(jīng) 常 可 以 在 VB 程 式 中 看 到 「 值 」 轉(zhuǎn) 換 的 例 子 , 如 : </P>
<P><FONT COLOR="#000099"> Dim I As Integer</FONT> <BR>
<FONT COLOR="#000099"> I = "123" ' 字串 "123"
先轉(zhuǎn)換成 123,再指定給 I</FONT> <BR>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -