多數是內存管理混亂造成的,每個表單沒有相對獨立的環境,打開別的表單共同工作時,產生衝突。這種混亂的習慣根源於舊式編程思維——功能都從菜單中調用。很難查的,要重新整理整個程序的思路才行。你要取數據,在自己的表單模塊中用過程或函數取,怎麽能夠讓用戶打開別的表單取數據呢!別的模塊未必是你自己寫的,你不知道人家的代碼都用了什麽數據環境,如果它用到的數據正好被你霸佔着,或者你用到的數據被人家霸佔着,又或者是這個模塊改動了那個模塊正在使用的全局變量値,一下打開這個,一下打開那個,程序設計者自己都弄不清是哪個影響哪個,不崩潰才怪。每個模塊的程序編寫,首要的原則是你進去時是什麽環境,先保存下來,退出時必須完全恢復,不要大量使用公共變量(PUBLIC)數據,習慣舊式BASIC、FP語言的人就喜歡使用全程變量,用時又不謹慎,死機崩潰自然在所難免。
數據庫就是全局變量,有人習慣打開了不關閉,又在別的菜單或表單中重復打開。這本來很正常,但問題在於你又允許用菜單隨時打開多個表單,正在打開的表單沒關閉,它用著的數據庫當然也沒關閉,別的表單又打開相同的數據庫,但用別的工作區,工作區不同理論上可以,但你若讀寫數據庫,那仍然是同一個磁盤文件,仍然是同一個東西,也就是多頭管理,崩潰太正常了。在我看來,如果眞是這樣編程,而居然有時能夠正常工作,那是你的大幸。
一個菜單只應該做一件獨立的事,哪有一個功能同時使用多個菜單項之理!
數據庫就是全局變量,有人習慣打開了不關閉,又在別的菜單或表單中重復打開。這本來很正常,但問題在於你又允許用菜單隨時打開多個表單,正在打開的表單沒關閉,它用著的數據庫當然也沒關閉,別的表單又打開相同的數據庫,但用別的工作區,工作區不同理論上可以,但你若讀寫數據庫,那仍然是同一個磁盤文件,仍然是同一個東西,也就是多頭管理,崩潰太正常了。在我看來,如果眞是這樣編程,而居然有時能夠正常工作,那是你的大幸。
一個菜單只應該做一件獨立的事,哪有一個功能同時使用多個菜單項之理!
授人以渔,不授人以鱼。