基于VB的桌面系統(tǒng)開發(fā)方案T課件3_第1頁
基于VB的桌面系統(tǒng)開發(fā)方案T課件3_第2頁
基于VB的桌面系統(tǒng)開發(fā)方案T課件3_第3頁
基于VB的桌面系統(tǒng)開發(fā)方案T課件3_第4頁
基于VB的桌面系統(tǒng)開發(fā)方案T課件3_第5頁
已閱讀5頁,還剩193頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

基于VB的桌面系統(tǒng)開發(fā)方案程序的打包和展開81基于VB的桌面系統(tǒng)開發(fā)方案81課題目標(biāo)學(xué)會如何為應(yīng)用程序創(chuàng)建幫助文件了解What’sThisHelp和ToolTipText屬性的使用區(qū)分P-code(偽代碼)和Nativecode

(本機(jī)代碼)兩個編譯選項的不同了解使用打包和開發(fā)向?qū)нM(jìn)行程序打包和開發(fā)的步驟了解TreeView控件的使用2課題目標(biāo)學(xué)會如何為應(yīng)用程序創(chuàng)建幫助文件2回顧介紹進(jìn)程和線程的概念兩種部件——進(jìn)程內(nèi)部件(.dll)和進(jìn)程外部件(.exe)。在VisualBasic中創(chuàng)建一個ActiveXDLL簡要說明了對象瀏覽器在工程中的作用類型庫和對象的概念介紹了ActiveX文檔使用DHTML應(yīng)用程序創(chuàng)建Internet上的文檔3回顧介紹進(jìn)程和線程的概念3如何創(chuàng)建幫助按下F1就可以調(diào)出相關(guān)主題的幫助文件一個典型的幫助窗口包括三個部分:目錄顯示所有幫助文件的結(jié)構(gòu)信息只用鼠標(biāo)就可以跳到相應(yīng)主題索引和一本書的索引類似按照字母順序列出幫助文件中創(chuàng)建的所有主題的一個列表。主題是我們在幫助文件中生成的主題的名稱4如何創(chuàng)建幫助按下F1就可以調(diào)出相關(guān)主題的幫助文件4如何創(chuàng)建幫助(續(xù))查找通過創(chuàng)建一個幫助文件信息的數(shù)據(jù)庫來實現(xiàn)的跳躍式的查詢數(shù)據(jù)庫中包括了所有幫助文件中的單詞用戶在不知道主題的情況下可以通過指定一個單詞進(jìn)行查找5如何創(chuàng)建幫助(續(xù))查找5MSWord的幫助對話框6MSWord的幫助對話框6VisualBasic的幫助VisualBasic6.0提供詳細(xì)的幫助系統(tǒng)它有功能強(qiáng)大的幫助系統(tǒng),稱為MicrosoftDeveloper’sNetworkLibrary(MSDN)VisualBasic支持窗口幫助(WinHelp)和最新的HTML幫助系統(tǒng)7VisualBasic的幫助VisualBasic6.幫助文件的屬性使用HelpFile和HelpContextID屬性來指向相應(yīng)的幫助文件,以便為用戶提供上下文相關(guān)的幫助8幫助文件的屬性使用HelpFile和HelpContextI

HelpFile屬性在設(shè)計的時候通過“工程屬性”對話框來設(shè)置應(yīng)用程序的幫助文件。9HelpFile屬性在設(shè)計的時候通過“工程屬性”對話框來設(shè)設(shè)置HelpFileHelpFile屬性在運行時可以通過兩種方法來設(shè)置——使用App對象或是Err對象App對象使用App關(guān)鍵字訪問指明應(yīng)用程序的標(biāo)題、版本、路徑、可執(zhí)行文件名和幫助文件,以及是否有實例在運行App對象的HelpFile屬性用來指定幫助文件的名稱需要有效的WinHelp(.hlp)或HTMLHelp(.chm)文件如果指定的文件不存在,則程序會告錯

Err對象用來處理運行錯誤Err對象也支持HelpFile和HelpContext屬性10設(shè)置HelpFileHelpFile屬性在運行時可以通過兩種設(shè)置HelpFile(續(xù))PrivateSubForm_Load() App.HelpFile=App.Path&“\vb98.chm"EndSub11設(shè)置HelpFile(續(xù))PrivateSubForm_設(shè)置HelpFile(續(xù))PrivateSubcommand1_Click()DimmsgAsStringOnErrorResumeNextText3.Text=Text1.Text/Text2.Textmsg=Err.Number&""&Err.HelpFile&""&Err.DescriptionMsgBoxmsgEndSub12設(shè)置HelpFile(續(xù))PrivateSubcomma

HelpContextID屬性為應(yīng)用程序的任何用戶界面提供上下文主題幫助在幫助文件中為每一個主題指定一個標(biāo)記,這個標(biāo)記是一個數(shù)字ID,它和應(yīng)用程序中的某一個指定項的主題相關(guān)例如:可以把一個命令按鈕控件的HelpContextID屬性設(shè)置為10000在用戶選中這個按鈕并按下F1時,VisualBasic就會在程序的HelpFile屬性指定的幫助文件中尋找Context為10000的幫助文件如果找到,就會打開一個幫助窗口并顯示這個主題;如果沒有,就會告錯并顯示幫助文件的缺省主題在設(shè)計時,HelpContextID屬性可以在屬性窗口中進(jìn)行設(shè)置13HelpContextID屬性為應(yīng)用程序的任何用戶界面提供設(shè)置HelpContextID14設(shè)置HelpContextID14“What’sThisHelp”屬性上下文敏感幫助的替換物提供不使用幫助窗口的對指定主題的幫助設(shè)置和上下文敏感幫助一樣在設(shè)計時設(shè)置或在運行時設(shè)置都可以選中控件時可以提供一個到彈出式幫助主題的連接15“What’sThisHelp”屬性上下文敏感幫助的替換“What’sThisHelp”屬性在用戶界面上提供幫助Winhelp和HTML幫助系統(tǒng)都支持這個屬性“這是什么?”幫助按鈕:16“What’sThisHelp”屬性在用戶界面上提供幫助“這是什么?”彈出幫助主題因為“這是什么?“幫助按鈕包含在窗口的標(biāo)題條中,所以窗口的最大化和最小化按鈕會被移走17“這是什么?”彈出幫助主題因為“這是什么?“幫助按鈕包含在窗“這是什么?”幫助按鈕在窗體的標(biāo)題條上顯示:在屬性窗口中把窗體的WhatsThisHelp屬性設(shè)為True同時把What’sThisButton屬性設(shè)為True

把BorderStyle屬性設(shè)為“3-FixedDialog”選中想要提供幫助的控件在屬性窗口中,在WhatsThisHelpID屬性中輸入相關(guān)的彈出幫助的上下文ID號18“這是什么?”幫助按鈕在窗體的標(biāo)題條上顯示:18“這是什么?”幫助按鈕(續(xù))就象上下文敏感幫助需要一個從幫助文件到HelpContextID屬性的映射一樣,

‘這是什么?’幫助也需要從幫助文件到What’sThisHelpID屬性的一個映射19“這是什么?”幫助按鈕(續(xù))就象上下文敏感幫助需要一個從幫助提供工具提示當(dāng)光標(biāo)在一個控件上停留一定時間后就會顯示出來的一個小小的標(biāo)簽

對這個控件的功能給出一個簡短的描述20提供工具提示當(dāng)光標(biāo)在一個控件上停留一定時間后就會顯示出來的一

在設(shè)計時可以按照下面所給的步驟為一個工具條添加工具提示:在窗體中放置好一個帶有按鈕的工具條后,用鼠標(biāo)右鍵單擊要求工具提示的按鈕選中“屬性”菜單項以便彈出屬性頁對話框在“按鈕”卡片上通過選中要設(shè)置工具提示的按鈕的索引來選中這個按鈕在工具提示文本框中輸入幫助文本提供工具提示(續(xù))21在設(shè)計時可以按照下面所給的步驟為一個工具條添加工具提示:提提供工具提示(續(xù))屬性頁對話框22提供工具提示(續(xù))屬性頁對話框22提供工具提示(續(xù))在運行時刻可以使用下面的方法來把工具條Toolbar1的第二個按鈕的tooltiptext屬性設(shè)置為“Deleteafile”:Toolbar1.Buttons(2).ToolTipText=“Deleteafile”VisualBasic的大部分控件在屬性頁中都支持tooltiptext屬性。通過下面的格式來設(shè)置Tooltiptext屬性值:command1.ToolTipText=“Clicktosave”23提供工具提示(續(xù))在運行時刻可以使用下面的方法來把工具條To編輯選項兩種通用的文件格式

–偽代碼(p-code)

本機(jī)代碼(nativecode)一個工程可以編譯為這兩種格式中的任何一種這兩種格式的主要區(qū)別在于可執(zhí)行文件的大小和程序運行的速度24編輯選項兩種通用的文件格式–24

偽代碼P-code介于程序的文本文件和計算機(jī)處理器直接執(zhí)行的本機(jī)代碼之間的中間代碼在運行時,VisualBasic把每一句偽代碼翻譯為本機(jī)代碼,也就是把每一句偽代碼轉(zhuǎn)換為計算機(jī)處理器可以理解的指令如果想避免這種轉(zhuǎn)換的話可以直接把程序編譯為本機(jī)代碼格式在執(zhí)行時,VisualBasic是按照需要執(zhí)行編譯的這意味著當(dāng)我們在VisualBasic中啟動一個程序時,只讓程序要運行的部分被編譯偽代碼指令被轉(zhuǎn)換為處理器可以執(zhí)行的指令在運行時,使用一個庫在偽代碼執(zhí)行前對它進(jìn)行解釋25偽代碼P-code介于程序的文本文件和計算機(jī)處理器直接執(zhí)偽代碼P-code(續(xù))優(yōu)點比本機(jī)代碼產(chǎn)生的最終代碼少,這樣可以減小編譯后的文件的大小編譯的速度也比編譯本機(jī)代碼要快缺點運行起來比本機(jī)代碼慢26偽代碼P-code(續(xù))優(yōu)點26本機(jī)代碼是處理器使用的語言,所以本機(jī)代碼可以被處理器直接執(zhí)行

可以跳過偽代碼直接把程序編譯為本機(jī)處理器的指令為用戶提供比偽代碼更多的優(yōu)化和調(diào)試選項,因此也更可取當(dāng)使用擴(kuò)展的數(shù)學(xué)計算時本機(jī)代碼編譯執(zhí)行起來會更快從“工程(Project)”菜單項中選擇“工程屬性(ProjectProperties)”對話框就可以選擇編譯選項27本機(jī)代碼是處理器使用的語言,所以本機(jī)代碼可以被處理器直接執(zhí)行工程屬性對話框中的編譯選項28工程屬性對話框中的編譯選項28本機(jī)代碼編譯選項選項說明代碼速度優(yōu)化讓編譯器產(chǎn)生更快的代碼代碼大小優(yōu)化最小化編譯后代碼的大小。無優(yōu)化放棄所有的優(yōu)化選項。針對PentiumPro優(yōu)化優(yōu)化代碼,使其支持在

PentiumPro(tm)處理器上運行。產(chǎn)生符號化調(diào)試信息產(chǎn)生

.pdb文件,其中包含允許用

MicrosoftVisualC++5.0或其它兼容調(diào)試器進(jìn)行調(diào)試的信息。29本機(jī)代碼編譯選項選項說明代碼速度優(yōu)化讓編譯器產(chǎn)生更快的代碼本機(jī)代碼編譯選項(續(xù))無別名設(shè)定通知編譯器應(yīng)用程序不使用別名引用。(別名就是一個名字,它指向的內(nèi)存位置已經(jīng)被另外一個名字引用)取消數(shù)組邊界檢查禁用

VisualBasic的數(shù)組邊界檢查。缺省情況下VisualBasic會檢查一個數(shù)組的索引是否超出邊界,如果越界會給出一個錯誤信息。取消整數(shù)溢出檢查禁用

VisualBasic的整數(shù)溢出檢查。取消浮點錯誤檢查禁用

VisualBasic的浮點數(shù)錯誤檢查。取消PentiumFDIV安全檢查禁用對

Pentium(tm)處理器浮點數(shù)除法的安全檢查。允許不舍入的浮點操作允許不用對浮點數(shù)進(jìn)行舍入獲取精確值就對浮點數(shù)表達(dá)式進(jìn)行比較。30本機(jī)代碼編譯選項(續(xù))無別名設(shè)定通知編譯器應(yīng)用程序不使用別名生成編譯文件設(shè)置好編譯選項后就可以對工程進(jìn)行編譯了選中“文件(File)”菜單中的“生成‘工程名稱’{EXE|DLL}”選項這樣就對工程進(jìn)行編譯并檢測所有的編譯錯誤,最后在目標(biāo)目錄下生成EXE或DLL文件31生成編譯文件設(shè)置好編譯選項后就可以對工程進(jìn)行編譯了31條件編譯

只想編譯程序中的部分代碼在不同的版本中可以包括應(yīng)用程序的某些特別的功能,例如設(shè)計一個可以在不同的平臺上運行的應(yīng)用程序或者在一個以多種語言發(fā)布的應(yīng)用程序中顯示信息在代碼中可以使用預(yù)定義的常量來決定編譯程序中的哪一部分代碼將要被編譯32條件編譯只想編譯程序中的部分代碼32條件編譯(續(xù))設(shè)置條件編譯常數(shù)有三種方法:在“工程屬性”對話框中在命令行中在代碼中條件編譯常數(shù)有特別的作用范圍,如何設(shè)置條件編譯常數(shù)可能取決于希望常數(shù)具有怎樣的作用范圍33條件編譯(續(xù))設(shè)置條件編譯常數(shù)有三種方法:33條件編譯(續(xù))#IfconGermanVersionThen Msgbox“GutenMorgen”#ElseIfconFrenchVersionThen Msgbox“BonJour”#Else Msgbox“GoodDay”#EndIf如何設(shè)置范圍“工程屬性”對話框Public作用于工程中的所有模塊命令行Public作用于工程中的所有模塊代碼中的

#Const語句Private僅作用于聲明該常數(shù)的模塊34條件編譯(續(xù))#IfconGermanVersionTh條件編譯(續(xù))為了把一個程序編譯為德語版本,從“工程”菜單選擇“工程屬性”單擊“工程屬性”對話框中的“生成”選項卡,在“條件編譯參數(shù)”字段中鍵入一個參數(shù),例如conFrenchVersion=–1當(dāng)程序被編譯時,該參數(shù)將滿足#If...Then的條件,處于#If...Then和#EndIf之間的代碼將包含進(jìn)編譯后的程序中35條件編譯(續(xù))為了把一個程序編譯為德語版本,從“工程”菜單選條件編譯變量通過冒號間隔來設(shè)置多個常數(shù)36條件編譯變量通過冒號間隔來設(shè)置多個常數(shù)36在命令行中設(shè)置常數(shù)如果要從命令行啟動編譯,可以使用/d開關(guān)鍵入條件編譯常數(shù):vb6.exe/MakeProject1.vbp/dconGermanVersion=–1命令行的常數(shù)聲明較之在“工程屬性”對話框中鍵入的常數(shù)聲明有較高的優(yōu)先級,但并不清除它們;在“工程屬性”對話框中設(shè)置的參數(shù)對后續(xù)的編譯保持有效布爾值True和–1相等37在命令行中設(shè)置常數(shù)如果要從命令行啟動編譯,可以使用/d開#Const語句用來定義條件編譯常數(shù)#Constconstantname=expressionconstantname是常量的名字,expression可以是文字、其它的條件編譯常數(shù)或包含算術(shù)或邏輯運算符的任意組合例如,在代碼中使用#Const語句來為一個日語版本定義一個條件編譯常量: #ConstconJapanVersion=138#Const語句用來定義條件編譯常數(shù)38打包和發(fā)布程序打包和發(fā)布向?qū)椭覀優(yōu)槌绦騽?chuàng)建所需要的安裝包裝類型

把程序發(fā)布到軟盤、網(wǎng)絡(luò)或者Web上這些文件中包含VB運行時所需要的庫、任何其它必需的.dll文件和幫助文件、數(shù)據(jù)文件、文檔和ReadMe文件創(chuàng)建兩種類型的軟件包標(biāo)準(zhǔn)軟件包

Internet軟件包39打包和發(fā)布程序打包和發(fā)布向?qū)?9打包和發(fā)布程序(續(xù))打包把程序的可執(zhí)行文件包裝到一個稱為發(fā)布單元的軟件包中的操作易于開發(fā)而且易于將應(yīng)用程序安裝到用戶的計算機(jī)上40打包和發(fā)布程序(續(xù))打包40啟動向?qū)б环N啟動方法從“開始”菜單中選中“程序”從MicrosoftVisualStudio6.0中選中MicrosoftVisualBasic6.0工具選中打包和展開向?qū)Я硪环N啟動方法從“外接程序”菜單中選中“外接程序管理

器”

從外接程序列表中選中打包和展開向?qū)нx中加載行為中的加載/卸載選項,然后單擊“確定(OK)”按鈕41啟動向?qū)б环N啟動方法41啟動向?qū)Вɡm(xù))42啟動向?qū)Вɡm(xù))42啟動向?qū)Вɡm(xù))打包把應(yīng)用程序打包為可展開的.cab文件.cab文件取代了VisualBasic前面版本中的一長串的壓縮文件。.ocx文件、輸入文件.inf和其它的一些相關(guān)文件現(xiàn)在都包含在.cab文件中43啟動向?qū)Вɡm(xù))打包43啟動向?qū)Вɡm(xù))展開將軟件包發(fā)布到軟盤、網(wǎng)絡(luò)或Web媒體上管理腳本瀏覽、編輯或刪除包裝和部署向?qū)е星懊鎯刹糠謩?chuàng)建的腳本44啟動向?qū)Вɡm(xù))展開44創(chuàng)建一個安裝程序“包類型”窗口顯示了兩個選項:標(biāo)準(zhǔn)安裝包相關(guān)文件

我們選中標(biāo)準(zhǔn)安裝包來創(chuàng)建一個安裝程序,它使用一個setup.exe來安裝一個應(yīng)用程序45創(chuàng)建一個安裝程序“包類型”窗口顯示了兩個選項:45創(chuàng)建一個安裝程序(續(xù))46創(chuàng)建一個安裝程序(續(xù))46創(chuàng)建一個安裝程序(續(xù))在“包類型”窗口中單擊“下一步(Next)”按鈕,接著顯示的是“打包文件夾”窗口選擇安裝包存儲的文件夾位置可以是一個本地的文件夾也可以是一個網(wǎng)絡(luò)上的某個位置,通過選擇“網(wǎng)絡(luò)”按鈕可以選擇要存放的網(wǎng)絡(luò)位置還可以選擇“新建文件夾”來創(chuàng)建一個新的文件夾47創(chuàng)建一個安裝程序(續(xù))在“包類型”窗口中單擊“下一步(Nex創(chuàng)建一個安裝程序(續(xù))48創(chuàng)建一個安裝程序(續(xù))48創(chuàng)建一個安裝程序(續(xù))“包含文件”窗口給出了安裝包中包含的文件的列表在這個列表中可以看到我們的程序的可執(zhí)行文件和其它一些從屬文件如果想添加文件,可以單擊“添加”按鈕49創(chuàng)建一個安裝程序(續(xù))“包含文件”窗口給出了安裝包中包含的文創(chuàng)建一個安裝程序(續(xù))50創(chuàng)建一個安裝程序(續(xù))50創(chuàng)建一個安裝程序(續(xù))“壓縮文件選項”窗口

用來指定如何根據(jù)發(fā)布程序的需要來進(jìn)行壓縮。多個壓縮文件選項選擇合適的選項保證每個壓縮文件的大小不超過計劃使用的磁盤的容量51創(chuàng)建一個安裝程序(續(xù))“壓縮文件選項”窗口51創(chuàng)建一個安裝程序(續(xù))52創(chuàng)建一個安裝程序(續(xù))52創(chuàng)建一個安裝程序(續(xù))53創(chuàng)建一個安裝程序(續(xù))53創(chuàng)建一個安裝程序(續(xù))“啟動菜單項”窗口用來指定應(yīng)用程序在Windows啟動菜單中的位置“安裝位置”窗口用來指定正常安裝時各個文件的位置54創(chuàng)建一個安裝程序(續(xù))“啟動菜單項”窗口用來指定應(yīng)用程序在W創(chuàng)建一個安裝程序(續(xù))55創(chuàng)建一個安裝程序(續(xù))55創(chuàng)建一個安裝程序(續(xù))56創(chuàng)建一個安裝程序(續(xù))56創(chuàng)建一個安裝程序(續(xù))“共享文件”窗口用來指定安裝后哪些文件用作共享文件最后一個窗口讓我們在文本框中輸入名稱用來保存會話設(shè)置以便將來使用57創(chuàng)建一個安裝程序(續(xù))“共享文件”窗口用來指定安裝后哪些文件創(chuàng)建一個安裝程序(續(xù))58創(chuàng)建一個安裝程序(續(xù))58創(chuàng)建一個安裝程序(續(xù))59創(chuàng)建一個安裝程序(續(xù))59開始展開單擊向?qū)е械摹罢归_”按鈕可以選擇是展開到一個軟盤(如果前面打包選擇的是壓縮到多個文件),還是展開到光盤,或是發(fā)布到網(wǎng)絡(luò)上,或是發(fā)布到Web(Web公布選項)上展開一個包60開始展開展開一個包60展開到軟盤用軟盤作為發(fā)布的媒體時,程序的大小受到很大的限制因為一張高密度的軟盤可以存儲的內(nèi)容也就是1.44MB,這就限制了程序的大小要在一張軟盤的存儲范圍之內(nèi)而且,如果對程序有了修改,則軟盤需要重新創(chuàng)建、復(fù)制和發(fā)布

要求選中的軟盤驅(qū)動器是存在的優(yōu)點用來讀取軟盤的硬件設(shè)備幾乎在每臺電腦上都可以找到,另外一個好處是軟盤的便攜性61展開到軟盤用軟盤作為發(fā)布的媒體時,程序的大小受到很大的限制6展開方法窗口62展開方法窗口62展開到光盤容量比軟盤要大得多,一張光盤可以容納600MB程序的大小不再受限制使用光盤來發(fā)布程序也很便捷光盤可以完全自啟動Windows95/98和WindowsNT都支持自啟動的光驅(qū)只要用戶把光盤放入光驅(qū)中就可以開始啟動安裝程序63展開到光盤容量比軟盤要大得多,一張光盤可以容納600MB6網(wǎng)絡(luò)發(fā)布需要考慮程序的大小、網(wǎng)絡(luò)的帶寬、速度和網(wǎng)絡(luò)連接的可靠性兩種方法:第一種方法是把網(wǎng)絡(luò)作為一種媒體用來把應(yīng)用程序傳輸?shù)娇蛻舳藨?yīng)用程序保存在服務(wù)器端,被下載并安裝到客戶

端第二種方法是創(chuàng)建一個網(wǎng)絡(luò)安裝,只有很少的幾個文件拷貝到客戶端每當(dāng)客戶端執(zhí)行程序時,再把必要的文件下載到客戶端的RAM中64網(wǎng)絡(luò)發(fā)布需要考慮程序的大小、網(wǎng)絡(luò)的帶寬、速度和網(wǎng)絡(luò)連接的可靠網(wǎng)絡(luò)發(fā)布(續(xù))盡管使用基于網(wǎng)絡(luò)的發(fā)布需要大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,但是這種方法還是很有益處的因為文件是集中存放在服務(wù)器端,所以對文件做修改和更新是很容易實現(xiàn)的不需要象使用軟盤那樣多次發(fā)布在打包和展開向?qū)е腥绻x擇了網(wǎng)絡(luò)發(fā)布,則安裝包會拷貝到一個選中的網(wǎng)絡(luò)環(huán)境的某個位置上65網(wǎng)絡(luò)發(fā)布(續(xù))盡管使用基于網(wǎng)絡(luò)的發(fā)布需要大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,文件夾窗口66文件夾窗口66在Web上展開可以讓我們把應(yīng)用程序發(fā)布到Internet上優(yōu)點:客戶端不需要運行任何安裝工具來把應(yīng)用程序安裝到本機(jī)上,只需要一個瀏覽器來和應(yīng)用程序進(jìn)行交互。省去了郵寄軟盤給遠(yuǎn)程客戶的手續(xù)用戶不需要在安裝時和多張磁盤打交道保證用戶總是可以獲得程序的最新版本,也就是說任何更新立即有效實現(xiàn)Web發(fā)布,要選中“展開方法”窗口中的“Web發(fā)布”選項67在Web上展開可以讓我們把應(yīng)用程序發(fā)布到Internet上6在Web上展開(續(xù))68在Web上展開(續(xù))68“展開項”窗口69“展開項”窗口69展開的附加項70展開的附加項70設(shè)置Web發(fā)布站點71設(shè)置Web發(fā)布站點71卸載程序MicrosoftWindows95/98和WindowsNT要求所有在Windows操作系統(tǒng)中安裝的應(yīng)用程序都要有相應(yīng)的卸載程序用戶安裝應(yīng)用程序setup程序會把一個St6unst.exe拷貝到\Windows或者\Winnt目錄下VisualBasic會在應(yīng)用程序的安裝目錄下產(chǎn)生一個log文件(St6unst.log)72卸載程序MicrosoftWindows95/98和Wi卸載程序(續(xù)).log文件中包含下面一些信息:在安裝時創(chuàng)建的目錄安裝文件的所在位置創(chuàng)建或修改的注冊表的入口Windows創(chuàng)建的開始菜單的入口通過控制面板中的添加/刪除程序來卸載一個應(yīng)用程序73卸載程序(續(xù)).log文件中包含下面一些信息:73Setup工具包是一個和VisualBasic一塊安裝的程序,打包和展開向?qū)г趧?chuàng)建一個安裝程序時使用到它包含有應(yīng)用程序的Setup程序在把文件安裝到用戶的計算機(jī)上時所用到的窗體和代碼打包和展開向?qū)е邪薙etup工具包創(chuàng)建的setup1.exe文件74Setup工具包是一個和VisualBasic一塊安裝的程Setup工具包(續(xù))可以用來修改安裝程序過程中的屏幕界面直接創(chuàng)建一個安裝程序位于VisualBasic根目錄下的\Wizards\PDWizard\Setup1子目錄下75Setup工具包(續(xù))可以用來修改安裝程序過程中的屏幕界面7Setup工具包(續(xù))在安裝過程中有兩個setup程序:setup.exe在用戶的計算機(jī)上執(zhí)行預(yù)安裝過程,包括安裝setup1.exe和任何其它主安裝程序需要的文件setup1.exe是Setup工具包自己定義的76Setup工具包(續(xù))在安裝過程中有兩個setup程序:76TreeView控件提供了一種通用的組織相關(guān)數(shù)據(jù)的方法把數(shù)據(jù)組織為分層的樹狀數(shù)據(jù)從一個根結(jié)點開始,下面是一些相關(guān)的結(jié)點每一個結(jié)點稱為根結(jié)點的子結(jié)點每個子結(jié)點又可以有它自己的子結(jié)點,如此類推77TreeView控件提供了一種通用的組織相關(guān)數(shù)據(jù)的方法77Windows資源管理器(TreeView的例子)78Windows資源管理器(TreeView的例子)78TreeView控件(續(xù))用戶可以通過折疊或展開某個分支來查看感興趣的信息使用結(jié)點的屬性和事件可以對每個結(jié)點的信息進(jìn)行操作使用結(jié)點可以顯示圖片79TreeView控件(續(xù))用戶可以通過折疊或展開某個分支來查TreeView控件(續(xù))我們也可以使用一個復(fù)選框來讓用戶根據(jù)需要標(biāo)記某些特殊的結(jié)點需要通過在“部件”對話框中選中選項“MicrosoftWindowsCommonControls6.0”才能讓它在工具箱中顯示80TreeView控件(續(xù))我們也可以使用一個復(fù)選框來讓用戶根屬性LineStyle返回或設(shè)置在結(jié)點間顯示的線的類型 object.LineStyle[=number]number參數(shù)的設(shè)置如下:tvwTreeLines對應(yīng)值0,它要求顯示結(jié)點到它的父結(jié)點的連線tvwRootLines對應(yīng)值1,不僅要求顯示結(jié)點到它的父結(jié)點的連線,而且要求顯示到根結(jié)點的連線使用格式如下: Treeview1.LineStyle=tvwRootLines81屬性LineStyle81屬性(續(xù))Nodes使用下面的格式來返回到結(jié)點集合中一個結(jié)點的引用: object.Nodes可以使用標(biāo)準(zhǔn)的集合方法來處理Nodes對象(例如,Add和Remove方法)我們可以使用集合中每個元素的下標(biāo)來訪問元素,或者使用元素對應(yīng)的唯一關(guān)鍵字(保存在Key屬性中)來訪問這個元素Nodes集合的Add方法使用格式如下: object.Nodes.Add(relative,relationship,key,text,image,selectedimage)82屬性(續(xù))Nodes82Add方法的參數(shù)設(shè)置設(shè)置值對應(yīng)值說明tvwFirst0這個結(jié)點被插入到和relative參數(shù)指定的結(jié)點同一級的所有結(jié)點的前面。tvwLast1這個結(jié)點被插入到和relative參數(shù)指定的結(jié)點同一級的所有結(jié)點的后面。一般情況下所有隨后結(jié)點都是緊跟著前一個插入。tvwNext2(缺?。┙Y(jié)點作為relative參數(shù)指定的結(jié)點的后一個結(jié)點插入。tvwPrevious3結(jié)點作為relative參數(shù)指定的結(jié)點的前一個結(jié)點插入。tvwChild4插入的結(jié)點作為relative參數(shù)指定的結(jié)點的一個子結(jié)點。83Add方法的參數(shù)設(shè)置設(shè)置值對應(yīng)值說明tvwFirst0這個結(jié)Add方法的參數(shù)relative用來給出新結(jié)點和這個已存在結(jié)點的關(guān)系

relationship按照表中所給的參數(shù)值設(shè)置新結(jié)點的相對位置key為新結(jié)點指定一個唯一的關(guān)鍵字text給出用來顯示結(jié)點時使用的文本信息image給定在和TreeView控件相關(guān)的圖片列表中一幅圖片的索引值selectedimage指定一幅在圖片列表中的圖片的索引值,這幅圖片在結(jié)點被選中時顯示84Add方法的參數(shù)relative84Node對象的屬性Checked返回結(jié)點對應(yīng)的復(fù)選框是否被選中 object.Checked

[=boolean]Expanded返回一個值,從這個值可以判斷一個結(jié)點當(dāng)前是展開的還是折疊的 object.Expanded[=boolean]85Node對象的屬性Checked85Node對象的屬性(續(xù))Index用來返回或設(shè)置結(jié)點集合中結(jié)點的唯一標(biāo)

志 object.IndexChildren返回一個結(jié)點對象包含的子結(jié)點的個數(shù) object.Children86Node對象的屬性(續(xù))Index86Node對象的屬性(續(xù))Sorted返回或設(shè)置一個值,用來決定是否對該結(jié)點的子結(jié)點按照字母順序進(jìn)行排序也可以用來設(shè)置一個值以決定是否對一個TreeView控件的根一級的結(jié)點按照字母順序進(jìn)行排序

object.Sorted[=Boolean]布爾值參數(shù)的設(shè)置含義如下:True-按照結(jié)點的Text屬性值進(jìn)行按字母順序的排序False-不進(jìn)行排序在代碼中: node.Sorted=True87Node對象的屬性(續(xù))Sorted87Node對象的屬性(續(xù))Style設(shè)置TreeView控件中每個結(jié)點對相對應(yīng)顯示的圖片的類型(圖片、文本、加號/減號或者線)和文本 object.Style[=number]Number參數(shù)的每個設(shè)置值的含義如下:0–

只能為文本1–

可以同時設(shè)置圖片和文本

2–可以同時設(shè)置加號/減號和文本

3–可以同時設(shè)置加號/減號、圖片和文本88Node對象的屬性(續(xù))Style88Node對象的屬性(續(xù))4–

可以同時設(shè)置線和文本5–

可以同時設(shè)置線、圖片和文本

6–

可以同時設(shè)置線、加號/減號和文本7–

(缺?。┛梢酝瑫r設(shè)置線、加號/減號、圖片和文本在代碼中:Treeview1.Style=tvwTreelinesPlusMinusText89Node對象的屬性(續(xù))4–可以同時設(shè)置線和文本89Node對象的屬性(續(xù))CheckBoxes決定是否在一個結(jié)點旁設(shè)置一個復(fù)選框 object.CheckBoxes[=Boolean]如果設(shè)置為True,則在結(jié)點旁設(shè)置復(fù)選

框,否則不設(shè)置 TreeView1.Checkboxes=True90Node對象的屬性(續(xù))CheckBoxes90事件Expand在TreeView控件中的一個結(jié)點對象被展開時發(fā)生,也就是當(dāng)它的子結(jié)點變?yōu)榭梢姷臅r候發(fā)生 PrivateSubobject_Expand(ByValnodeAsNode)這里的node指這個被展開的結(jié)點發(fā)生在Click和DblClick事件之后91事件Expand91事件(續(xù))PrivateSubTreeView1_Expand(ByValNodeAsNode) IfNode.Index<>1Then Node.Expanded=False EndIfEndSub92事件(續(xù))PrivateSubTreeView1_Exp事件(續(xù))Collapse當(dāng)TreeView控件中的任何結(jié)點被折疊時觸發(fā)

PrivateSubobject_Collapse(ByValnodeAsNode)

這兒的node參數(shù)指那個被點中的結(jié)點對象在標(biāo)準(zhǔn)Click事件之前發(fā)生93事件(續(xù))Collapse93事件(續(xù))PrivateSubTreeView1_Collapse(ByValNodeAsNode) IfNode.Children>1Then Node.Expanded=True EndIfEndSub94事件(續(xù))PrivateSubTreeView1_Col事件(續(xù))NodeClick在一個結(jié)點對象被單擊時發(fā)生PrivateSubobject_NodeClick(ByValnodeAsNode)

在用戶單擊結(jié)點對象時發(fā)生 PrivateSubTreeView1_NodeClick(ByVal_ NodeAsNode) Form1.Caption="Text:"&Node.Text EndSub95事件(續(xù))NodeClick95方法StartLabelEdit允許用戶編輯一個標(biāo)簽 Object.StartLabelEdit PrivateSubForm_Click() IfTreeView1.SelectedItem.Index<>1Then TreeView1.StartLabelEdit EndIf EndSub96方法StartLabelEdit96創(chuàng)建一個TreeView控件PrivateSubForm_Load()DimnddAsNodeSetndd=TreeView1.Nodes.Add(,,"cust","Customer")Setndd=TreeView1.Nodes.Add("cust",tvwChild,"aust","Australia")Setndd=TreeView1.Nodes.Add("cust",tvwChild,"eng","England")Setndd=TreeView1.Nodes.Add("aust",tvwChild,"adam","Adam")Setndd=TreeView1.Nodes.Add("aust",tvwChild,"joe","Joe")Setndd=TreeView1.Nodes.Add("aust",tvwChild,"jim","Jim")Setndd=TreeView1.Nodes.Add("aust",tvwChild,"tom","Tom")Setndd=TreeView1.Nodes.Add("eng",tvwChild,"andr","Andrew")Setndd=TreeView1.Nodes.Add("eng",tvwChild,"jac","Jacob")TreeView1.LineStyle=tvwRootLinesEndSub97創(chuàng)建一個TreeView控件PrivateSubForm一個TreeView控件98一個TreeView控件98本課總結(jié)一個典型的幫助窗口包括三個選項卡目錄索引查找VisualBasic支持兩種幫助系統(tǒng)WinHelpHTML一個工程可以被編譯為偽代碼或本機(jī)代碼條件編譯為應(yīng)用程序打包TreeView控件99本課總結(jié)一個典型的幫助窗口包括三個選項卡99基于VB的桌面系統(tǒng)開發(fā)方案程序的打包和展開8100基于VB的桌面系統(tǒng)開發(fā)方案81課題目標(biāo)學(xué)會如何為應(yīng)用程序創(chuàng)建幫助文件了解What’sThisHelp和ToolTipText屬性的使用區(qū)分P-code(偽代碼)和Nativecode

(本機(jī)代碼)兩個編譯選項的不同了解使用打包和開發(fā)向?qū)нM(jìn)行程序打包和開發(fā)的步驟了解TreeView控件的使用101課題目標(biāo)學(xué)會如何為應(yīng)用程序創(chuàng)建幫助文件2回顧介紹進(jìn)程和線程的概念兩種部件——進(jìn)程內(nèi)部件(.dll)和進(jìn)程外部件(.exe)。在VisualBasic中創(chuàng)建一個ActiveXDLL簡要說明了對象瀏覽器在工程中的作用類型庫和對象的概念介紹了ActiveX文檔使用DHTML應(yīng)用程序創(chuàng)建Internet上的文檔102回顧介紹進(jìn)程和線程的概念3如何創(chuàng)建幫助按下F1就可以調(diào)出相關(guān)主題的幫助文件一個典型的幫助窗口包括三個部分:目錄顯示所有幫助文件的結(jié)構(gòu)信息只用鼠標(biāo)就可以跳到相應(yīng)主題索引和一本書的索引類似按照字母順序列出幫助文件中創(chuàng)建的所有主題的一個列表。主題是我們在幫助文件中生成的主題的名稱103如何創(chuàng)建幫助按下F1就可以調(diào)出相關(guān)主題的幫助文件4如何創(chuàng)建幫助(續(xù))查找通過創(chuàng)建一個幫助文件信息的數(shù)據(jù)庫來實現(xiàn)的跳躍式的查詢數(shù)據(jù)庫中包括了所有幫助文件中的單詞用戶在不知道主題的情況下可以通過指定一個單詞進(jìn)行查找104如何創(chuàng)建幫助(續(xù))查找5MSWord的幫助對話框105MSWord的幫助對話框6VisualBasic的幫助VisualBasic6.0提供詳細(xì)的幫助系統(tǒng)它有功能強(qiáng)大的幫助系統(tǒng),稱為MicrosoftDeveloper’sNetworkLibrary(MSDN)VisualBasic支持窗口幫助(WinHelp)和最新的HTML幫助系統(tǒng)106VisualBasic的幫助VisualBasic6.幫助文件的屬性使用HelpFile和HelpContextID屬性來指向相應(yīng)的幫助文件,以便為用戶提供上下文相關(guān)的幫助107幫助文件的屬性使用HelpFile和HelpContextI

HelpFile屬性在設(shè)計的時候通過“工程屬性”對話框來設(shè)置應(yīng)用程序的幫助文件。108HelpFile屬性在設(shè)計的時候通過“工程屬性”對話框來設(shè)設(shè)置HelpFileHelpFile屬性在運行時可以通過兩種方法來設(shè)置——使用App對象或是Err對象App對象使用App關(guān)鍵字訪問指明應(yīng)用程序的標(biāo)題、版本、路徑、可執(zhí)行文件名和幫助文件,以及是否有實例在運行App對象的HelpFile屬性用來指定幫助文件的名稱需要有效的WinHelp(.hlp)或HTMLHelp(.chm)文件如果指定的文件不存在,則程序會告錯

Err對象用來處理運行錯誤Err對象也支持HelpFile和HelpContext屬性109設(shè)置HelpFileHelpFile屬性在運行時可以通過兩種設(shè)置HelpFile(續(xù))PrivateSubForm_Load() App.HelpFile=App.Path&“\vb98.chm"EndSub110設(shè)置HelpFile(續(xù))PrivateSubForm_設(shè)置HelpFile(續(xù))PrivateSubcommand1_Click()DimmsgAsStringOnErrorResumeNextText3.Text=Text1.Text/Text2.Textmsg=Err.Number&""&Err.HelpFile&""&Err.DescriptionMsgBoxmsgEndSub111設(shè)置HelpFile(續(xù))PrivateSubcomma

HelpContextID屬性為應(yīng)用程序的任何用戶界面提供上下文主題幫助在幫助文件中為每一個主題指定一個標(biāo)記,這個標(biāo)記是一個數(shù)字ID,它和應(yīng)用程序中的某一個指定項的主題相關(guān)例如:可以把一個命令按鈕控件的HelpContextID屬性設(shè)置為10000在用戶選中這個按鈕并按下F1時,VisualBasic就會在程序的HelpFile屬性指定的幫助文件中尋找Context為10000的幫助文件如果找到,就會打開一個幫助窗口并顯示這個主題;如果沒有,就會告錯并顯示幫助文件的缺省主題在設(shè)計時,HelpContextID屬性可以在屬性窗口中進(jìn)行設(shè)置112HelpContextID屬性為應(yīng)用程序的任何用戶界面提供設(shè)置HelpContextID113設(shè)置HelpContextID14“What’sThisHelp”屬性上下文敏感幫助的替換物提供不使用幫助窗口的對指定主題的幫助設(shè)置和上下文敏感幫助一樣在設(shè)計時設(shè)置或在運行時設(shè)置都可以選中控件時可以提供一個到彈出式幫助主題的連接114“What’sThisHelp”屬性上下文敏感幫助的替換“What’sThisHelp”屬性在用戶界面上提供幫助Winhelp和HTML幫助系統(tǒng)都支持這個屬性“這是什么?”幫助按鈕:115“What’sThisHelp”屬性在用戶界面上提供幫助“這是什么?”彈出幫助主題因為“這是什么?“幫助按鈕包含在窗口的標(biāo)題條中,所以窗口的最大化和最小化按鈕會被移走116“這是什么?”彈出幫助主題因為“這是什么?“幫助按鈕包含在窗“這是什么?”幫助按鈕在窗體的標(biāo)題條上顯示:在屬性窗口中把窗體的WhatsThisHelp屬性設(shè)為True同時把What’sThisButton屬性設(shè)為True

把BorderStyle屬性設(shè)為“3-FixedDialog”選中想要提供幫助的控件在屬性窗口中,在WhatsThisHelpID屬性中輸入相關(guān)的彈出幫助的上下文ID號117“這是什么?”幫助按鈕在窗體的標(biāo)題條上顯示:18“這是什么?”幫助按鈕(續(xù))就象上下文敏感幫助需要一個從幫助文件到HelpContextID屬性的映射一樣,

‘這是什么?’幫助也需要從幫助文件到What’sThisHelpID屬性的一個映射118“這是什么?”幫助按鈕(續(xù))就象上下文敏感幫助需要一個從幫助提供工具提示當(dāng)光標(biāo)在一個控件上停留一定時間后就會顯示出來的一個小小的標(biāo)簽

對這個控件的功能給出一個簡短的描述119提供工具提示當(dāng)光標(biāo)在一個控件上停留一定時間后就會顯示出來的一

在設(shè)計時可以按照下面所給的步驟為一個工具條添加工具提示:在窗體中放置好一個帶有按鈕的工具條后,用鼠標(biāo)右鍵單擊要求工具提示的按鈕選中“屬性”菜單項以便彈出屬性頁對話框在“按鈕”卡片上通過選中要設(shè)置工具提示的按鈕的索引來選中這個按鈕在工具提示文本框中輸入幫助文本提供工具提示(續(xù))120在設(shè)計時可以按照下面所給的步驟為一個工具條添加工具提示:提提供工具提示(續(xù))屬性頁對話框121提供工具提示(續(xù))屬性頁對話框22提供工具提示(續(xù))在運行時刻可以使用下面的方法來把工具條Toolbar1的第二個按鈕的tooltiptext屬性設(shè)置為“Deleteafile”:Toolbar1.Buttons(2).ToolTipText=“Deleteafile”VisualBasic的大部分控件在屬性頁中都支持tooltiptext屬性。通過下面的格式來設(shè)置Tooltiptext屬性值:command1.ToolTipText=“Clicktosave”122提供工具提示(續(xù))在運行時刻可以使用下面的方法來把工具條To編輯選項兩種通用的文件格式

–偽代碼(p-code)

本機(jī)代碼(nativecode)一個工程可以編譯為這兩種格式中的任何一種這兩種格式的主要區(qū)別在于可執(zhí)行文件的大小和程序運行的速度123編輯選項兩種通用的文件格式–24

偽代碼P-code介于程序的文本文件和計算機(jī)處理器直接執(zhí)行的本機(jī)代碼之間的中間代碼在運行時,VisualBasic把每一句偽代碼翻譯為本機(jī)代碼,也就是把每一句偽代碼轉(zhuǎn)換為計算機(jī)處理器可以理解的指令如果想避免這種轉(zhuǎn)換的話可以直接把程序編譯為本機(jī)代碼格式在執(zhí)行時,VisualBasic是按照需要執(zhí)行編譯的這意味著當(dāng)我們在VisualBasic中啟動一個程序時,只讓程序要運行的部分被編譯偽代碼指令被轉(zhuǎn)換為處理器可以執(zhí)行的指令在運行時,使用一個庫在偽代碼執(zhí)行前對它進(jìn)行解釋124偽代碼P-code介于程序的文本文件和計算機(jī)處理器直接執(zhí)偽代碼P-code(續(xù))優(yōu)點比本機(jī)代碼產(chǎn)生的最終代碼少,這樣可以減小編譯后的文件的大小編譯的速度也比編譯本機(jī)代碼要快缺點運行起來比本機(jī)代碼慢125偽代碼P-code(續(xù))優(yōu)點26本機(jī)代碼是處理器使用的語言,所以本機(jī)代碼可以被處理器直接執(zhí)行

可以跳過偽代碼直接把程序編譯為本機(jī)處理器的指令為用戶提供比偽代碼更多的優(yōu)化和調(diào)試選項,因此也更可取當(dāng)使用擴(kuò)展的數(shù)學(xué)計算時本機(jī)代碼編譯執(zhí)行起來會更快從“工程(Project)”菜單項中選擇“工程屬性(ProjectProperties)”對話框就可以選擇編譯選項126本機(jī)代碼是處理器使用的語言,所以本機(jī)代碼可以被處理器直接執(zhí)行工程屬性對話框中的編譯選項127工程屬性對話框中的編譯選項28本機(jī)代碼編譯選項選項說明代碼速度優(yōu)化讓編譯器產(chǎn)生更快的代碼代碼大小優(yōu)化最小化編譯后代碼的大小。無優(yōu)化放棄所有的優(yōu)化選項。針對PentiumPro優(yōu)化優(yōu)化代碼,使其支持在

PentiumPro(tm)處理器上運行。產(chǎn)生符號化調(diào)試信息產(chǎn)生

.pdb文件,其中包含允許用

MicrosoftVisualC++5.0或其它兼容調(diào)試器進(jìn)行調(diào)試的信息。128本機(jī)代碼編譯選項選項說明代碼速度優(yōu)化讓編譯器產(chǎn)生更快的代碼本機(jī)代碼編譯選項(續(xù))無別名設(shè)定通知編譯器應(yīng)用程序不使用別名引用。(別名就是一個名字,它指向的內(nèi)存位置已經(jīng)被另外一個名字引用)取消數(shù)組邊界檢查禁用

VisualBasic的數(shù)組邊界檢查。缺省情況下VisualBasic會檢查一個數(shù)組的索引是否超出邊界,如果越界會給出一個錯誤信息。取消整數(shù)溢出檢查禁用

VisualBasic的整數(shù)溢出檢查。取消浮點錯誤檢查禁用

VisualBasic的浮點數(shù)錯誤檢查。取消PentiumFDIV安全檢查禁用對

Pentium(tm)處理器浮點數(shù)除法的安全檢查。允許不舍入的浮點操作允許不用對浮點數(shù)進(jìn)行舍入獲取精確值就對浮點數(shù)表達(dá)式進(jìn)行比較。129本機(jī)代碼編譯選項(續(xù))無別名設(shè)定通知編譯器應(yīng)用程序不使用別名生成編譯文件設(shè)置好編譯選項后就可以對工程進(jìn)行編譯了選中“文件(File)”菜單中的“生成‘工程名稱’{EXE|DLL}”選項這樣就對工程進(jìn)行編譯并檢測所有的編譯錯誤,最后在目標(biāo)目錄下生成EXE或DLL文件130生成編譯文件設(shè)置好編譯選項后就可以對工程進(jìn)行編譯了31條件編譯

只想編譯程序中的部分代碼在不同的版本中可以包括應(yīng)用程序的某些特別的功能,例如設(shè)計一個可以在不同的平臺上運行的應(yīng)用程序或者在一個以多種語言發(fā)布的應(yīng)用程序中顯示信息在代碼中可以使用預(yù)定義的常量來決定編譯程序中的哪一部分代碼將要被編譯131條件編譯只想編譯程序中的部分代碼32條件編譯(續(xù))設(shè)置條件編譯常數(shù)有三種方法:在“工程屬性”對話框中在命令行中在代碼中條件編譯常數(shù)有特別的作用范圍,如何設(shè)置條件編譯常數(shù)可能取決于希望常數(shù)具有怎樣的作用范圍132條件編譯(續(xù))設(shè)置條件編譯常數(shù)有三種方法:33條件編譯(續(xù))#IfconGermanVersionThen Msgbox“GutenMorgen”#ElseIfconFrenchVersionThen Msgbox“BonJour”#Else Msgbox“GoodDay”#EndIf如何設(shè)置范圍“工程屬性”對話框Public作用于工程中的所有模塊命令行Public作用于工程中的所有模塊代碼中的

#Const語句Private僅作用于聲明該常數(shù)的模塊133條件編譯(續(xù))#IfconGermanVersionTh條件編譯(續(xù))為了把一個程序編譯為德語版本,從“工程”菜單選擇“工程屬性”單擊“工程屬性”對話框中的“生成”選項卡,在“條件編譯參數(shù)”字段中鍵入一個參數(shù),例如conFrenchVersion=–1當(dāng)程序被編譯時,該參數(shù)將滿足#If...Then的條件,處于#If...Then和#EndIf之間的代碼將包含進(jìn)編譯后的程序中134條件編譯(續(xù))為了把一個程序編譯為德語版本,從“工程”菜單選條件編譯變量通過冒號間隔來設(shè)置多個常數(shù)135條件編譯變量通過冒號間隔來設(shè)置多個常數(shù)36在命令行中設(shè)置常數(shù)如果要從命令行啟動編譯,可以使用/d開關(guān)鍵入條件編譯常數(shù):vb6.exe/MakeProject1.vbp/dconGermanVersion=–1命令行的常數(shù)聲明較之在“工程屬性”對話框中鍵入的常數(shù)聲明有較高的優(yōu)先級,但并不清除它們;在“工程屬性”對話框中設(shè)置的參數(shù)對后續(xù)的編譯保持有效布爾值True和–1相等136在命令行中設(shè)置常數(shù)如果要從命令行啟動編譯,可以使用/d開#Const語句用來定義條件編譯常數(shù)#Constconstantname=expressionconstantname是常量的名字,expression可以是文字、其它的條件編譯常數(shù)或包含算術(shù)或邏輯運算符的任意組合例如,在代碼中使用#Const語句來為一個日語版本定義一個條件編譯常量: #ConstconJapanVersion=1137#Const語句用來定義條件編譯常數(shù)38打包和發(fā)布程序打包和發(fā)布向?qū)椭覀優(yōu)槌绦騽?chuàng)建所需要的安裝包裝類型

把程序發(fā)布到軟盤、網(wǎng)絡(luò)或者Web上這些文件中包含VB運行時所需要的庫、任何其它必需的.dll文件和幫助文件、數(shù)據(jù)文件、文檔和ReadMe文件創(chuàng)建兩種類型的軟件包標(biāo)準(zhǔn)軟件包

Internet軟件包138打包和發(fā)布程序打包和發(fā)布向?qū)?9打包和發(fā)布程序(續(xù))打包把程序的可執(zhí)行文件包裝到一個稱為發(fā)布單元的軟件包中的操作易于開發(fā)而且易于將應(yīng)用程序安裝到用戶的計算機(jī)上139打包和發(fā)布程序(續(xù))打包40啟動向?qū)б环N啟動方法從“開始”菜單中選中“程序”從MicrosoftVisualStudio6.0中選中MicrosoftVisualBasic6.0工具選中打包和展開向?qū)Я硪环N啟動方法從“外接程序”菜單中選中“外接程序管理

器”

從外接程序列表中選中打包和展開向?qū)нx中加載行為中的加載/卸載選項,然后單擊“確定(OK)”按鈕140啟動向?qū)б环N啟動方法41啟動向?qū)Вɡm(xù))141啟動向?qū)Вɡm(xù))42啟動向?qū)Вɡm(xù))打包把應(yīng)用程序打包為可展開的.cab文件.cab文件取代了VisualBasic前面版本中的一長串的壓縮文件。.ocx文件、輸入文件.inf和其它的一些相關(guān)文件現(xiàn)在都包含在.cab文件中142啟動向?qū)Вɡm(xù))打包43啟動向?qū)Вɡm(xù))展開將軟件包發(fā)布到軟盤、網(wǎng)絡(luò)或Web媒體上管理腳本瀏覽、編輯或刪除包裝和部署向?qū)е星懊鎯刹糠謩?chuàng)建的腳本143啟動向?qū)Вɡm(xù))展開44創(chuàng)建一個安裝程序“包類型”窗口顯示了兩個選項:標(biāo)準(zhǔn)安裝包相關(guān)文件

我們選中標(biāo)準(zhǔn)安裝包來創(chuàng)建一個安裝程序,它使用一個setup.exe來安裝一個應(yīng)用程序144創(chuàng)建一個安裝程序“包類型”窗口顯示了兩個選項:45創(chuàng)建一個安裝程序(續(xù))145創(chuàng)建一個安裝程序(續(xù))46創(chuàng)建一個安裝程序(續(xù))在“包類型”窗口中單擊“下一步(Next)”按鈕,接著顯示的是“打包文件夾”窗口選擇安裝包存儲的文件夾位置可以是一個本地的文件夾也可以是一個網(wǎng)絡(luò)上的某個位置,通過選擇“網(wǎng)絡(luò)”按鈕可以選擇要存放的網(wǎng)絡(luò)位置還可以選擇“新建文件夾”來創(chuàng)建一個新的文件夾146創(chuàng)建一個安裝程序(續(xù))在“包類型”窗口中單擊“下一步(Nex創(chuàng)建一個安裝程序(續(xù))147創(chuàng)建一個安裝程序(續(xù))48創(chuàng)建一個安裝程序(續(xù))“包含文件”窗口給出了安裝包中包含的文件的列表在這個列表中可以看到我們的程序的可執(zhí)行文件和其它一些從屬文件如果想添加文件,可以單擊“添加”按鈕148創(chuàng)建一個安裝程序(續(xù))“包含文件”窗口給出了安裝包中包含的文創(chuàng)建一個安裝程序(續(xù))149創(chuàng)建一個安裝程序(續(xù))50創(chuàng)建一個安裝程序(續(xù))“壓縮文件選項”窗口

用來指定如何根據(jù)發(fā)布程序的需要來進(jìn)行壓縮。多個壓縮文件選項選擇合適的選項保證每個壓縮文件的大小不超過計劃使用的磁盤的容量150創(chuàng)建一個安裝程序(續(xù))“壓縮文件選項”窗口51創(chuàng)建一個安裝程序(續(xù))151創(chuàng)建一個安裝程序(續(xù))52創(chuàng)建一個安裝程序(續(xù))152創(chuàng)建一個安裝程序(續(xù))53創(chuàng)建一個安裝程序(續(xù))“啟動菜單項”窗口用來指定應(yīng)用程序在Windows啟動菜單中的位置“安裝位置”窗口用來指定正常安裝時各個文件的位置153創(chuàng)建一個安裝程序(續(xù))“啟動菜單項”窗口用來指定應(yīng)用程序在W創(chuàng)建一個安裝程序(續(xù))154創(chuàng)建一個安裝程序(續(xù))55創(chuàng)建一個安裝程序(續(xù))155創(chuàng)建一個安裝程序(續(xù))56創(chuàng)建一個安裝程序(續(xù))“共享文件”窗口用來指定安裝后哪些文件用作共享文件最后一個窗口讓我們在文本框中輸入名稱用來保存會話設(shè)置以便將來使用156創(chuàng)建一個安裝程序(續(xù))“共享文件”窗口用來指定安裝后哪些文件創(chuàng)建一個安裝程序(續(xù))157創(chuàng)建一個安裝程序(續(xù))58創(chuàng)建一個安裝程序(續(xù))158創(chuàng)建一個安裝程序(續(xù))59開始展開單擊向?qū)е械摹罢归_”按鈕可以選擇是展開到一個軟盤(如果前面打包選擇的是壓縮到多個文件),還是展開到光盤,或是發(fā)布到網(wǎng)絡(luò)上,或是發(fā)布到Web(Web公布選項)上展開一個包159開始展開展開一個包60展開到軟盤用軟盤作為發(fā)布的媒體時,程序的大小受到很大的限制因為一張高密度的軟盤可以存儲的內(nèi)容也就是1.44MB,這就限制了程序的大小要在一張軟盤的存儲范圍之內(nèi)而且,如果對程序有了修改,則軟盤需要重新創(chuàng)建、復(fù)制和發(fā)布

要求選中的軟盤驅(qū)動器是存在的優(yōu)點用來讀取軟盤的硬件設(shè)備幾乎在每臺電腦上都可以找到,另外一個好處是軟盤的便攜性160展開到軟盤用軟盤作為發(fā)布的媒體時,程序的大小受到很大的限制6展開方法窗口161展開方法窗口62展開到光盤容量比軟盤要大得多,一張光盤可以容納600MB程序的大小不再受限制使用光盤來發(fā)布程序也很便捷光盤可以完全自啟動Windows95/98和WindowsNT都支持自啟動的光驅(qū)只要用戶把光盤放入光驅(qū)中就可以開始啟動安裝程序162展開到光盤容量比軟盤要大得多,一張光盤可以容納600MB6網(wǎng)絡(luò)發(fā)布需要考慮程序的大小、網(wǎng)絡(luò)的帶寬、速度和網(wǎng)絡(luò)連接的可靠性兩種方法:第一種方法是把網(wǎng)絡(luò)作為一種媒體用來把應(yīng)用程序傳輸?shù)娇蛻舳藨?yīng)用程序保存在服務(wù)器端,被下載并安裝到客戶

端第二種方法是創(chuàng)建一個網(wǎng)絡(luò)安裝,只有很少的幾個文件拷貝到客戶端每當(dāng)客戶端執(zhí)行程序時,再把必要的文件下載到客戶端的RAM中163網(wǎng)絡(luò)發(fā)布需要考慮程序的大小、網(wǎng)絡(luò)的帶寬、速度和網(wǎng)絡(luò)連接的可靠網(wǎng)絡(luò)發(fā)布(續(xù))盡管使用基于網(wǎng)絡(luò)的發(fā)布需要大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,但是這種方法還是很有益處的因為文件是集中存放在服務(wù)器端,所以對文件做修改和更新是很容易實現(xiàn)的不需要象使用軟盤那樣多次發(fā)布在打包和展開向?qū)е腥绻x擇了網(wǎng)絡(luò)發(fā)布,則安裝包會拷貝到一個選中的網(wǎng)絡(luò)環(huán)境的某個位置上164網(wǎng)絡(luò)發(fā)布(續(xù))盡管使用基于網(wǎng)絡(luò)的發(fā)布需要大量的網(wǎng)絡(luò)數(shù)據(jù)傳輸,文件夾窗口165文件夾窗口66在Web上展開可以讓我們把應(yīng)用程序發(fā)布到Internet上優(yōu)點:客戶端不需要運行任何安裝工具來把應(yīng)用程序安裝到本機(jī)上,只需要一個瀏覽器來和應(yīng)用程序進(jìn)行交互。省去了郵寄軟盤給遠(yuǎn)程客戶的手續(xù)用戶不需要在安裝時和多張磁盤打交道保證用戶總是可以獲得程序的最新版本,也就是說任何更新立即有效實現(xiàn)Web發(fā)布,要選中“展開方法”窗口中的“Web發(fā)布”選項166在Web上展開可以讓我們把應(yīng)用程序發(fā)布到Internet上6在Web上展開(續(xù))167在Web上展開(續(xù))68“展開項”窗口168“展開項”窗口69展開的附加項169展開的附加項70設(shè)置Web發(fā)布站點170設(shè)置Web發(fā)布站點71卸載程序MicrosoftWindows95/98和WindowsNT要求所有在Windows操作系統(tǒng)中安裝的應(yīng)用程序都要有相應(yīng)的卸載程序用戶安裝應(yīng)用程序setup程序會把一個St6unst.exe拷貝到\Windows或者\Winnt目錄下VisualBasic會在應(yīng)用程序的安裝目錄下產(chǎn)生一個log文件(St6unst.log)171卸載程序MicrosoftWindows95/98和Wi卸載程序(續(xù)).log文件中包含下面一些信息:在安裝時創(chuàng)建的目錄安裝文件的所在位置創(chuàng)建或修改的注冊表的入口Windows創(chuàng)建的開始菜單的入口通過控制面板中的添加/刪除程序來卸載一個應(yīng)用程序172卸載程序(續(xù)).log文件中包含下面一些信息:73Setup工具包是一個和VisualBasic一塊安裝的程序,打包和展開向?qū)г趧?chuàng)建一個安裝程序時使用到它包含有應(yīng)用程序的Setup程序在把文件安裝到用戶的計算機(jī)上時所用到的窗體和代碼打包和展開向?qū)е邪薙etup工具包創(chuàng)建的setup1.exe文件173Setup工具包是一個和VisualBasic一塊安裝的程Setup工具包(續(xù))可以用來修改安裝程序過程中的屏幕界面直接創(chuàng)建一個安裝程序位于VisualBasic根目錄下的\Wizards\PDWizard\Setup1子目錄下174Setup工具包(續(xù))可以用來修改安裝程序過程中的屏幕界面7Setup工具包(續(xù))在安裝過程中有兩個setup程序:setup.exe在用戶的計算機(jī)上執(zhí)行預(yù)安裝過程,包括安裝setup1.exe和任何其它主安裝程序需要的文件setup1.exe是Setup工具包自己定義的175Setup工具包(續(xù))在安裝過程中有兩個setup程序:76TreeView控件提供了一種通用的組織相關(guān)數(shù)據(jù)的方法把數(shù)據(jù)組織為分層的樹狀數(shù)據(jù)從一個根結(jié)點開始,下面是一些相關(guān)的結(jié)點每一個結(jié)點稱為根結(jié)點的子結(jié)點每個子結(jié)點又可以有它自己的子結(jié)點,如此類推176TreeView控件提供了一種通用的組織相關(guān)數(shù)據(jù)的方法77Windows資源管理器(TreeView的例子)177Windows資源管理器(TreeView的例子)78TreeView控件(續(xù))用戶可以通過折疊或展開某個分支來查看感興趣的信息使用結(jié)點的屬性和事件可以對每個結(jié)點的信息進(jìn)行操作使用結(jié)點可以顯示圖片178TreeView控件(續(xù))用戶可以通過折疊或展開某個分支來查TreeView控件(續(xù))我們也可以使用一個復(fù)選框來讓用戶根據(jù)需要標(biāo)記某些特殊的結(jié)點需要通過在“部件”對話框中選中選項“MicrosoftWindowsCommonControls6.0”才能讓它在工具箱中顯示179TreeView控件(續(xù))我們也可以使用一個復(fù)選框來讓用戶根屬性LineStyle返回或設(shè)置在結(jié)點間顯示的線的類型 object.LineStyle[=number]number參數(shù)的設(shè)置如下:tvwTreeLines對應(yīng)值0,它要求顯示結(jié)點到它的父結(jié)點的連線tvwRootLines對應(yīng)值1,不僅要求顯示結(jié)點到它的父結(jié)點的連線,而且要求顯示到根結(jié)點的連線使用格式如下: Treeview1.LineStyle=tvwRootLines180屬性LineStyle81屬性(續(xù))Nodes使用下面的格式來返回到結(jié)點集合中一個結(jié)點的引用: object.Nodes可以使用標(biāo)準(zhǔn)的集合方法來處理Nodes對象(例如,Add和Remove方法)我們可以使用集合中每個元素的下標(biāo)來訪問元素,或者使用元素對應(yīng)的唯一關(guān)鍵字(保存在Key屬性中)來訪問這個元素Nodes集合的Add方法使用格式如下: object.Nodes.Add(relative,relationship,key,text,image,selectedimage)181屬性(續(xù))Nodes82Add方法的參數(shù)設(shè)置設(shè)置值對應(yīng)值說明tvwFirst0這個結(jié)點被插入到和relative參數(shù)指定的結(jié)點同一級的所有結(jié)點的前面。tvwLast1這個結(jié)點被插入到和relative參數(shù)指定的結(jié)點同一級的所有結(jié)點的后面。一般情況下所有隨后結(jié)點都是緊跟著前一個插入。tvwNext2(缺?。┙Y(jié)點作為relative參數(shù)指定的結(jié)點的后一個結(jié)點插入。tvwPrevious3結(jié)點作為relative參數(shù)指定的結(jié)點的前一個結(jié)點插入。tvwChild4插入的結(jié)點作為relative參數(shù)指定的結(jié)點的一個子結(jié)點。182Add方法的參數(shù)設(shè)置設(shè)置值對應(yīng)值說明tvwFirst0這個結(jié)Add方法的參數(shù)relative用來給出新結(jié)點和這個已存在結(jié)點的關(guān)系

relationship按照表中所給的參數(shù)值設(shè)置新結(jié)點的相對位置key為新結(jié)點指定一個唯一的關(guān)鍵字text給出用來顯示結(jié)點時使用的文本信息image給定在和TreeView控件相關(guān)的圖片列表中一幅圖片的索引值selectedimage指定一幅在圖片列表中的圖片的索引值,這幅圖片在結(jié)點被選中時顯示183Add方法的參數(shù)relative84Node對象的屬性Checked返回結(jié)點對應(yīng)的復(fù)選框是否被選中 object.Checked

[=boolean]Expanded返回一個值,從這個值可以判斷一個結(jié)點當(dāng)前是展開的還是折疊的 object.Expanded[=boolean]184Node對象的屬性Checked85Node對象的屬性

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論