| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1512 人关注过本帖
标题:请教:自己编制的vfp程序,当打开多个表单后出现崩溃的情况可能有那些原因
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
多數是內存管理混亂造成的,每個表單沒有相對獨立的環境,打開別的表單共同工作時,產生衝突。這種混亂的習慣根源於舊式編程思維——功能都從菜單中調用。很難查的,要重新整理整個程序的思路才行。你要取數據,在自己的表單模塊中用過程或函數取,怎麽能夠讓用戶打開別的表單取數據呢!別的模塊未必是你自己寫的,你不知道人家的代碼都用了什麽數據環境,如果它用到的數據正好被你霸佔着,或者你用到的數據被人家霸佔着,又或者是這個模塊改動了那個模塊正在使用的全局變量値,一下打開這個,一下打開那個,程序設計者自己都弄不清是哪個影響哪個,不崩潰才怪。每個模塊的程序編寫,首要的原則是你進去時是什麽環境,先保存下來,退出時必須完全恢復,不要大量使用公共變量(PUBLIC)數據,習慣舊式BASIC、FP語言的人就喜歡使用全程變量,用時又不謹慎,死機崩潰自然在所難免。

數據庫就是全局變量,有人習慣打開了不關閉,又在別的菜單或表單中重復打開。這本來很正常,但問題在於你又允許用菜單隨時打開多個表單,正在打開的表單沒關閉,它用著的數據庫當然也沒關閉,別的表單又打開相同的數據庫,但用別的工作區,工作區不同理論上可以,但你若讀寫數據庫,那仍然是同一個磁盤文件,仍然是同一個東西,也就是多頭管理,崩潰太正常了。在我看來,如果眞是這樣編程,而居然有時能夠正常工作,那是你的大幸。

一個菜單只應該做一件獨立的事,哪有一個功能同時使用多個菜單項之理!

授人以渔,不授人以鱼。
2011-07-06 15:48
快速回复:请教:自己编制的vfp程序,当打开多个表单后出现崩溃的情况可能有那些 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047431 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved