亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

VB5三十六計

2019-11-18 17:39:10
字體:
來源:轉載
供稿:網友
感覺篇

NO.1瞞天過海
為了讓用戶感覺到應用程序執行很快,我們可以利用定時器事件在后臺“悄悄”執行一些任務。在一些連續性的操作(比如向導)中,用戶可能會因為瀏覽提示信息等緣故而不會立即對應用程序作出響應。這時我們可以用一個靜態變量或全局變量來跟蹤運行過程,一旦定時器空閑就進行一小部分工作(如加載數據)。如果能保證每次的工作量都很少,那么用戶不會感到應用程序的應答有什么影響,相反他會發現后續工作將會完成得很快。
NO.2趁火打劫
在應用程序中可能會多次從磁盤中提取數據,這時我們可以盡可能一次多加載數據,只要這些數據不是太大,用戶就不會感到過多的延遲。但由于減少了磁盤操作的次數,用戶會感到應用程序的總體速度較快。
NO.3順手牽羊
可以在Windows啟動時先運行一個小的實用程序來預加載VB應用程序所需的動態鏈接庫,如Msvbvm50.dll等。這樣,由于windows動態鏈接庫的唯一性,應用程序啟動時就能跳過加載這些文件的步驟,使啟動時間大大縮短.
NO.4暗渡陳倉
當應用程序的主窗體包含較多數據時,它的啟動就會顯得非常慢。這時我們可以設計一個簡潔的窗體來顯示諸如版權之類的信息,'而顯示這個窗體的同時則在后臺用Load方法將主窗體調人內存,之后將版權窗體卸載并用Show方法顯示主窗體,從而讓用戶誤以為主窗體一下子就調出來了。
NO.5金蟬脫殼
在應用程序中一些窗體會反復出現,這樣我們在不需要時用Hide方法隱藏而不是用UnLoad卸出內存,這樣做的優點是再用到該窗體時可以立刻顯示出來而不是延遲一段時間、
NO.6美人計
一個Windows應用程序的成功在很大程度上取決于用戶界面的優劣,今年很流行的WinAmp就是不很典型的例子。關于優化界面的方法,有調整控件位置,保持無素一致、簡化界面等

速度篇

NO.7調虎離山
當控件的某一屬性需反復引用時,我們可以把它緩存到某一變量中以加快速度:
L=picture1.top
forI=0to15
image(I).top=L-1
nextI
NO.8釜底抽薪
由于Windows的圖形特性,圖形及其它操作的顯示速度在很大程度上決定了應用程序的感覺速度,因此在窗體互相重疊的時候應盡量不使用ClipControls和AutoRedraw,設置控件屬性時應隱藏控件,以免多次重畫,還有用Line代替Pset等等。
NO.9李代桃僵
盡管過程調用使代碼具有模塊化風格而更易維護,但對于速度要求嚴格的場合,過程調用會增加額外的操作和處理時間,尤其是當調用處于循環體內時,我們就有必要變過程調用為代碼內嵌,以犧牲維護性的代價換取寶貴的速度。
NO.10連環計
速度的優化不只是某一單方面的事,比如折半查找的算法效率就比順序查找高。但要是循環體采用Variant變量作計數器則會大大降低執行速度,因此最佳的方案是折半查找加Long整型變量作計數器。
NO.11上屋抽梯
在應用程序中可能會有一些對象或變量已經完成任務卻仍占據內存資源,這里提倡一種上屋抽梯、過河折橋的方法卸載對象或變量:setObjest=Nothing
同樣的,使用動態數組并在使用完畢后回收內存資源也能達到相同的效果。
NO.12反客為主
由于VB采用事件驅動,因此應用程序的操作總是靠用戶或系統的響應來激發的,但對于一些總是要執行的操作我們可以主動產生一些事件,以在應用程序空閑時合理的利用系統資源。

大小篇

NO.13偷梁換柱
有時候我們僅僅是為了顯示圖形和文字,但卻使用了圖片框和文本框,實際上圖像框和標簽在這種場合能很好地代替前二者,且大大節省內存。
NO.14樹上開花
這里講的是一種借局布勢的方法,即當我們需要很多相同的控件和窗體時可以使用控件數組和Forms集合。控件數組通過賦予多個同類控件相同的Name屬性及相應的Index屬性得到,而Forms集合則通過使用New關鍵字獲得。二者的引用方法分別為Object(n)和Forms(n)。
NO.15走為上
隨著工程的日漸龐大,代碼中難免會出現一些死代碼和無用的變量及常數,VB在編譯時會自動刪除無用的常數,但死代碼和無用的變量仍然會被編譯到.exe文件中。這不但會占用寶貴的內存資源,而且會降低執行效率甚至導致應用程序的崩潰,因此把死代碼和無用變量請“走”是一個很好的習慣。
NO.16假癡不癲
雖然功能齊全是件令人稱道的事,但重復的建設和為了一些很少用到的功能而耗費大量代碼和空間無疑是一種浪費,就好比Win95的任務條上已有一個時鐘,你卻非在應用程序中再加一個一樣沒有多大意義,另一個例子就是wps97雖然沒有Word功能多卻非常受歡迎。其實軟件同硬件一樣:電腦,電腦,夠用就好!
NO.17假道伐虢
盡管我們可以自己編寫代碼來完成諸如繪圖。表格處理之類的工作,但若這些功能在應用程序中不占重要位置時,可以考慮通過OLE或者DDE的方法調用畫圖、寫字板、Excel之類的現有程序來完成工作,既節省代碼又節省空間。
NO.18無中生有
VB5提供了一種新的編程模式,即利用多個工程同時工作,這樣我們可以將應用程序分段,雖然內存里沒有多少代碼,但需要某項功能時可以將這個ActiveX控件隨時調人內存使用。合理地利用系統資源。

數據篇

NO.19隔岸觀火
在進行數據庫操作時往往涉及到數據的檢索,可以用Find-First、FindNext及Seek等方法來完成任務,但最簡單也是最有效的方法,是給足查詢條件并用類似英語的結構化查詢語言SQL來完成這個工作,SQL由MicrosoftJet支持,其語法和ANSISQL基本一致:
SELECT字段名FROM表名WHERE條件
其中“字段名”可包括多項值,“條件”項則可使用“And”、“Or”、“<”、“=”、“Like”等邏輯
比較操作符。一旦按照語法編寫了SQL語句,即可將其提交給Data控件的Recordset對象,并由Jet引擎處理,
從而返回查詢結果,以輕松實現組合查詢。
NO.20空城計
隨著NC、NetPC及低價PC的日益流行,網絡中的客戶機配置可能會越來越簡單,因此把大量的數據庫及其操作放在客戶機上是不太合適的,可以把控件同遠程服務器上的數據庫進行綁定。這樣,雖然客戶機上只存在一丁點兒數據,但用戶需要的任何數據庫功能都可通過服務器實現,并且由于數據存放集中而更加容易管理。
NO.21聲東擊西
在設計關系數據庫軟件并希望兩個數據庫表關聯時,可以采用VB提供的DBListBox和DBComboBox控件,利用它們能使兩個表協調變更。當然,兩個表必須有一個類型相同的字段以確定其關系。這兩個控件均具有以下五個特殊屬性:
DataSource被綁定的Data控件名稱。
DataField由DataSource屬性指定的記錄集的字段名稱,它用來決定列表中什么元素被突出顯示。當作了新選擇后,移動到一條新記錄時該字段被更新。
RowSource將用于填充列表的Data控件的名稱。
Boundcolumn由RowSource屬性指定的記錄集中的字段名稱,它必須與用來更新列表的DataField字段類型相同。
ListField用來填充列表的由RowSource指定的記錄集中的字段名。
通過設置以上五個屬性,我們可以輕松實現主副關系數據庫應用程序的構造,當然我們也可以不用這兩個控件而用代碼來實現,其事例可以通過使用數據窗體向導而得到。
NO.22借尸還魂
也許用戶會希望應用程序有Undo功能,“事務”正是實現恢復數據庫更改的工具,VB5通過以下三個方法支持事務功能:BeginTrans開始一個新事務CommitTrans確認所作的更改Rollbac撤消所作的更改
事務功能可以嵌套,典型的例子如下:
DimTablelAsRecordset
‘定義表變量
Dimwork1AsWorkspace
‘定義工作空間
DimWork2AsWorkspace
SetTablel=Datap.Recordset
SetWork1=workspace(0)
SetWork2=Workspace(1)
Work1.BeginTrans
……'一系列改變
Work2.BeginTrans'撤消變更
……'一系列改變
Work1.CommitTrans確認變更
NO.23遠交近攻
設計基于SQLServer的窗體時應考慮到網絡的帶寬:應用程序向服務器申請的數據越多網絡就越易塞車,因此,設計窗體時應在用戶有明確要求或確實需要時才向服務器申請數據和功能:
①用過濾器或SQL查詢限制記錄集記錄數。
②只在服務器上查詢窗體實際用到的字段。
③盡量少使用綁定控件,因為它們會獨立向服務器遞交查詢。
④對始終不變的數據應盡量保存在本地'Jet數據庫以加速查詢。
⑤對于很難改變的數據,在服務器和本地機上同時保存,僅在其改變時才下載。
NO.24圍魏救趙
有些memo字段和長二進制格式(OLE對象)字段并不常用,可以在用戶要求顯示時才把它調人內存,這樣可以大大降低內存負擔。

調試篇

NO.25擒賊擒王
調試包含除錯和優化,而優化必須找準方向。比如速度對游戲至關重要,而Internet下載型軟件則著重大小,所以找準方向,找對地方往往能事半功倍。優化速度應盡量優化循環體,因為循環體的執行速度差會成倍影響應用程序,同理,對于經常調用的過程和函數也是如此。
NO.26欲擒故縱
測試應用程序和處理等價于VB運行錯誤的具體條件時,進行錯誤模擬是非常有用的。模擬錯誤的格式為:
Object.Raiseargumentlist
例如下面的語句模擬“磁盤未準備好”的錯誤:
Err.RaiseNumber:71
NO.27以逸待勞
無論我們寫的程序有多么優秀,實際運行中的錯誤我們仍然無法預料。設置錯誤捕捉是個以逸代勞的做法。一旦錯誤被捕獲,我們就可以調用例程進行處理:
subA()
onErrorGotoCheckErr
……
ExitSub
CheckErr:
……
Endsub
NO.28關門捉賊
當應用程序變得龐大后,僅對整個工程進行表面測試難以保證可靠性。因此,對于一些可能會出錯的過程和函數應單獨測試,滿足其調用條件井檢查返回結果,這對于發現錯誤尤其是非運行錯誤和非語法錯誤(如計算錯誤)大有幫助。
NO.29借刀殺人
對一個頻繁使用的變量或對象逐步跟蹤無疑是個龐大的工程,好在VB5提供了監視表達式,利用它可隨時監視變量或對象,并在滿足指定條件時中斷運行。通過“調試”菜單中的“添加監視表達式”可獲得這一功能。
NO.30打草驚蛇
為避免變量重名我們會使用一些長變量名,但這樣很容易造成變量名拼寫錯誤。這時我們可以在“選項”對話框中確認“要求變量聲明”.如此VB就會自動在其后的每個模塊中添加“OptionExplicit”,從而在運行程序時,VB一旦發現拼寫錯的變量名,而錯的名字又未定義時,就會告訴你“變量沒有定義”,并把光標停在該處。當然,這樣做要注意兩點:一是最好一開始時就選擇“要求變量聲明”,二是用到的變量都必須先聲明(當然,這是個好習慣)。

雜談篇

NO.31混水摸魚
坐井觀天往往不會有什么好成就,要跟上10倍速時代必須時刻注視新技術。網上有很多ActiveX控件,融合了很多流行技術,可以去“摸”幾個,至于地址可在《電腦愛好者》上找到一些。
NO.32拋磚引玉
對于VBFAN,要想“燒”出水平必須和別人相互交流,往往你解決不了的難題恰好是別人的拿手菜,而你自以為的高招卻不如別人的優秀……
NO.33反間計
將彼之技用于我技,看看別人的程序是怎樣寫的,特別是VB的范例,相當一部分“賊棒”。
NO.34揩桑罵槐
有時想讓用戶注意某處而用戶偏偏視而不見,可以用高亮、鮮艷的色彩甚至聲音來提醒他們:“注意了,這里有問題!”
NO.35笑里藏刀
友好的提示總是更能博得喜愛,用戶并不需知道那些晦澀的技術細節,他們只需要知道發生了什么事情,該怎么辦。像“C盤xxxx扇區嚴重損壞,重試?放棄?失敗?”就比“存儲數據時C盤出錯,改存到其它驅動器嗎?”要令人討厭。
NO.36苦肉計
計計歸來,計計匯總,想要提高VB5應用水平,勤學苦練必不可少,因此說,“VB5三十六計,勤奮是上策”。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
777777777亚洲妇女| 国产色婷婷国产综合在线理论片a| 狠狠躁夜夜躁人人爽天天天天97| 久久全国免费视频| 琪琪第一精品导航| 精品无人国产偷自产在线| 亚洲国产精品va在看黑人| 成人有码在线视频| 亚洲国产成人精品久久| 国产拍精品一二三| 久久久亚洲精选| 欧美日韩国产二区| 欧美日韩国产一区在线| 欧美老少做受xxxx高潮| 国产日韩精品入口| 国产福利视频一区二区| 粉嫩av一区二区三区免费野| 亚洲综合中文字幕在线| 成人做爰www免费看视频网站| 国产91亚洲精品| 91亚洲人电影| 亚洲国产精品久久久久久| 欧美激情国产日韩精品一区18| 777午夜精品福利在线观看| 久久视频免费在线播放| 97精品国产97久久久久久| 国产综合久久久久| 91精品国产色综合久久不卡98口| 日本久久精品视频| 欧美亚洲国产成人精品| 精品久久久久久中文字幕一区奶水| 国产精品99久久久久久白浆小说| 91综合免费在线| 亚洲福利在线视频| 欧美野外wwwxxx| 亚洲精品福利视频| 这里只有精品在线播放| 欧美激情精品久久久| 中文字幕在线看视频国产欧美在线看完整| 日本成熟性欧美| 欧美性受xxxx白人性爽| 日韩av中文字幕在线| 久久人人爽亚洲精品天堂| 国产91在线播放九色快色| 国产日韩欧美视频| 久久精品亚洲一区| 欧美精品18videos性欧| 国内精品久久久久久久久| 成人淫片在线看| 91在线视频九色| 韩国精品久久久999| 91精品视频免费看| 91精品在线观看视频| 国产精品aaa| 国模私拍视频一区| 欧美中文字幕精品| 日本成熟性欧美| 日韩中文理论片| 国产亚洲欧洲高清| 日韩精品中文字幕在线| 国产成人精品日本亚洲专区61| 久久精品小视频| 一区二区三区国产在线观看| 国产成人综合av| 国产精品久久久久不卡| 日韩av资源在线播放| 亚洲国产日韩欧美在线99| 国产日韩精品在线| 欧美夫妻性视频| 国产成人综合亚洲| 亚洲人成啪啪网站| 欧美极品美女视频网站在线观看免费| 久久国产精品99国产精| 91色琪琪电影亚洲精品久久| 亚洲国产日韩精品在线| 国产成人精品一区二区在线| 久久久久99精品久久久久| 国产精品私拍pans大尺度在线| 欧美多人乱p欧美4p久久| 久久91亚洲精品中文字幕奶水| 国产不卡在线观看| 欧美电影在线观看| 国产99久久久欧美黑人| 国产精品久久久久久久久久小说| 91精品国产综合久久久久久蜜臀| 日韩影视在线观看| 国产suv精品一区二区三区88区| 精品国内产的精品视频在线观看| 国产成人精品久久亚洲高清不卡| 日韩欧美在线免费| 国产69精品久久久久9999| 亚洲2020天天堂在线观看| 91九色国产在线| 国产精品91久久久| 亚洲欧洲美洲在线综合| 成人综合国产精品| 欧美日韩国产综合新一区| 欧美成人合集magnet| 亚洲伊人成综合成人网| 国产精品99蜜臀久久不卡二区| 亚洲天堂男人天堂| 精品日韩视频在线观看| 久久久久久一区二区三区| 欧美天天综合色影久久精品| 欧美在线播放视频| 78m国产成人精品视频| 欧美最顶级丰满的aⅴ艳星| 国产久一一精品| 福利精品视频在线| 日韩视频在线一区| 欧美日韩综合视频| 亚洲国产女人aaa毛片在线| 九色成人免费视频| 青青草国产精品一区二区| 成人av在线亚洲| 亚洲欧洲美洲在线综合| 在线亚洲欧美视频| 国产999在线| 欧美另类精品xxxx孕妇| 亚洲欧美国产精品va在线观看| 色偷偷偷亚洲综合网另类| 国产精品免费观看在线| 96国产粉嫩美女| 国产成人在线一区二区| 3344国产精品免费看| 最好看的2019的中文字幕视频| 欧美一区视频在线| 欧美日韩激情小视频| 日韩欧美亚洲成人| 91久久在线观看| 色综合久久88色综合天天看泰| 国产啪精品视频网站| 国产欧美精品一区二区三区介绍| 欧美日韩福利电影| 中日韩美女免费视频网址在线观看| 久久亚洲精品视频| 国产精品夜色7777狼人| 国产98色在线| 国产精品自拍网| 国产一区二区三区在线看| 日韩av大片在线| 国产欧美一区二区三区久久| 精品国产依人香蕉在线精品| 78色国产精品| 久久久99免费视频| 久久久国产精品免费| 亚洲第一区第二区| 精品久久久久久久久国产字幕| 亚洲精品久久久久久久久| 亚洲直播在线一区| 91在线观看免费网站| 日韩精品极品在线观看| 亚洲区在线播放| 夜夜嗨av色一区二区不卡| 亚洲一区亚洲二区亚洲三区| 欧美精品一区在线播放| 欧美一级高清免费| 最近免费中文字幕视频2019| 久久免费成人精品视频| 97精品国产97久久久久久| 夜夜嗨av一区二区三区四区| 日韩精品视频免费在线观看| 久久久精品视频成人| 97在线观看视频国产|