Prirate Sub Label1_LostFocus? ? Update Label1 Label1.Option=Text1.text Text1.Move Label2.Left?Label2.Top Text1.Text1 contents Text1.Text=Label2.Caption End Sub |
通過適當設置BackColor和BorderStyle的屬性,可以使標簽看起來像文本框,雖說這會需要更多的代碼,但對于含有大量文本域的窗體,它可以大大地減少資源的使用。
四、在設計中,直接放入應用程序的數據(像屬性或代碼中的文字字符串和數值)將增加運行時程序占用的內存。運行時從磁盤文件和資源中加載數據可以減少內存占用。這對大的位圖和字符串特別有價值。
五、VB只在需要時才加載模塊,即當代碼調用模塊中的一個過程時,模塊才被加載到內存中。若從未調用一特定模塊中的過程,VB決不會加載該模塊。因此,盡量把相關的過程放在同一個模塊中,讓VB只在需要時才加載模塊。
六、Variant數據使用極其靈活,但占用內存大。所以,我們應考慮用其他數據類型代替Variant變量,特別是替代Variant變量數組。
每一個Variant占用16個字節,而Integer占用2個字節,Double占用8個字節,長字符串變量占用4個字節,加上字符串中每一個字符占用1個字節,共5個字節。但Variant字符串變量會占用16個字節,再加上字符串中每一個字符占用一個字節。因為它們太大,消耗堆??臻g特別快,所以特煩人,尤其是在作局部變量或過程的參數時。但有些情況下,Variant變量的靈活性又能給程序帶來極大的方便,所以,用不用這項優化技術應根據應用程序的情況來作取舍。
七、這項技術相信大家并不陌生。動態數組可用Erase或ReDim Preserve收回數組所占用的內存。例如:Erase MyArray,Erase用于完全刪除數組;ReDim Preserve則只縮短數組而不丟失其內容:
ReDim Preserve MyArray?10?smallernum?
刪除固定數組不能收回它占用的內存空間,只可簡單地清除數組內每一個元素。如果元素是字符串,或包含字符串或數組的Variant變量,那刪除數組可回收這些字符串或Variant變量所占用的內存,而不是數組本身所占用的內存。
八、當過程結束時,可自動回收(非靜態)局部字符串和數組變量所占用的內存空間。但是,全局、模塊級的字符串和數組變量一直存活到整個程序結束。要使應用程序盡量小,應盡可能地回收這些變量所占用的空間。
九、再開發和修改程序時,可能遺留了一些死代碼——代碼中的一個完整過程,而它并沒有被任何地方調用,也可能聲明了一些不用的變量。雖然再創建.exe文件時,VB確實可刪除無用的常數,但不能刪除無用的變量和死代碼。
要消除死代碼,可在”編輯“菜單中,使用”查找“命令搜索特定變量的引用;或者,當每個模塊都含有Option Explicit語句時,通過刪除或注釋該變量的聲明,并運行應用程序,可迅速發現變量是否被調用,若被調用,則VB會出錯,否則就沒被使用。