我用delphi5.0+paradox数据库开发了一个应用系统,有两个耗费了我一个星期的时间还未解决的问题高手们看看!(30分)

  • 主题发起人 主题发起人 libaoliang
  • 开始时间 开始时间
L

libaoliang

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi5.0+paradox数据库开发了一个应用系统,有两个耗费了我一个星期的时间
还未解决的问题高手们看看!
1、 系统编译通过,exe 文件运行也正常,但在delphi环境下不能运行一执行就死机,
出现红色岔号和...CPU 提示,而又增加了一个小模块后,编译也能通过,但无法
正常运行,出现的提示信息是: Exception EoutOf Resources in module
scimis.exe at 0001c610.. 参数错误.
其中scmis.exe 是主文件名。用F7检查时,在有的模块出现错误,实际上该模块很
简单,根本检查不出什么错误,简单地修改一下又能通过,然后提示另一个模块错误,
当修正该模块重新检查时,又提示上一次的模块出现错误,我感到很奇怪,换成D6
也不行,有时出现的提示信息也不相同不知哪位高手是否遇到过这类问题,是否能
帮我一把?
2、我在一个新开发的系统中增加了一个输入模块,该模块是直接从其它系统中加过来的,
有一个问题是该模块总是在主程序启动之前先启动,然后主文件再起头也就是该模块
在主文件启动之前闪一下,当然 也不影响正常使用但我不明白是什么原因,
在系统增大时是否会在某些地方影响系统的正常运行。

目前我只有这些分数了,谁能帮我解决这两个问题,我一定奉还500,分如果有
临沂的高手在,我愿拿源程序到其处求教,解决了给人民币100元, 系统中没有使用任何第三方组件,
也没有任何复杂的地方,仅仅是一个form 上加了几个常用组件,我只是感到非常奇怪,
为何看似无任何问题的程序会无法运行,也许对高手或有经验的人员是小菜一碟,
问题的原因在于我对于程序设计方面有错误的观点!








 
1.应该是delphi自己的问题,重新安装或在别的机器上装delphi后,编译以译看是否正常.
2.你说的模块,可以在程序中动态创建的话,就不会存在目前的情况.
 
看情况是运行时间库正常,调试库有问题,最简单的重装一下delphi就行
 
我已经在另一台机器上试过,问题依然存在,
重新安装了delphi5.0 ,问题依然存在,
编译没有问题,但不能正常执行,具体代码在我的另一个问题中已经贴出,
感兴趣可以看看!



 
应该是DELPHI本般的问题。
建议重装!
 
建议打一下补丁试试
网址:xuhao23.myetang.com/db/
 
1、Exception EoutOf Resources in module scimis.exe at 0001c610.. 参数错误.
一般出这个提示是因为系统资源耗尽导致的,出现这个错误后死机很正常,问题是为什么出现这个错误。
主要有两种可能:
a.系统比较大,耗费资源比较多,或者使用了资源处理不是特别好的第三方控件,不过一般这个问题出现几率不大。
b.你的所有模块都是静态创建的,就是说程序启动时将所有的窗体都创建了,对于一般系统,
至少也得有10~20个窗体,如果一咕脑都创建了,不将系统资源耗尽才怪,何况你还启动着Delphi。

2、我在一个新开发的系统中增加了一个输入模块,该模块是直接从其它系统中加过来的,
有一个问题是该模块总是在主程序启动之前先启动,然后主文件再起头也就是该模块
在主文件启动之前闪一下,当然 也不影响正常使用但我不明白是什么原因,

在主文件启动以前闪一下,这个更证明了我上面说的,你的所有模块都是在启动的时候一次性的全部创建了。
他是在OnCreate事件中添加了Show事件,所以导致闪现一次,这也是一些闪现窗体的制作方法。

3、在系统增大时是否会在某些地方影响系统的正常运行。
系统增大,只要除主窗体以外的其他模块都是动态创建的,一般的情况下不会影响系统运行。这个你尽管放心。
 
可能是模块都是静态创建--消耗资源太多,能改为动态的尽量用动态的试试。
如果不介意将程序发过来帮你测试一下。linsb3031@163.com
 
>>有一个问题是该模块总是在主程序启动之前先启动
会不会你把主窗口设置成这个模块了?
 
能不能发给我试试

Nizvoo@etang.com

绝对不存私心~
 
请注意资源的释放工作,
用系统工具的资源查看器实时查看是在使用哪个FORM 时资源被吃了。
通常是资源不足
如不行,把程序mail 我试试
cch_b@netease.com
 
谢谢各位大富翁的热切关心,由于我单位电话上网,不能常在线未能及时回复各位
的良好建议,深表歉意!
关于第二个问题,
//在主文件启动以前闪一下,这个更证明了我上面说的,你的所有模块都是在启动的
//时候一次性的全部创建了。他是在OnCreate事件中添加了Show事件,所以导致闪现
//一次,这也是一些闪现窗体的制作方法。
我并没有在oncreate中show, 而是在onclick 事件中show的和其它模块一样,
但其它模块均正常,就是该模块这样,


 
你的这个模块可能关联了其他东西。

在编译时有些东西不进入编译的。所以运行时出错。

查看你程序管理的东西。

最好说一下你程序大体思路。

如果估计没错的话,你用了满多的数据控件。
 
lp1414:
我是使用了很多数据组件,一个数据管理系统肯定要使用很多数据组件,
但都是D5 的原生组件,为安全起见,我一般不会使用第三方组件,
在系统中并没有关联其他东西,
说实话,我对delphi 快失去信心了,很多问题莫名其妙,
不可能出问题的也会出问题,而且至少我没有掌握进行调试的很好的方法,
错误的提示信息不准确,也不能定位错误的模块和位置,
这一点我感到比VFP 差远了,我真不该放弃VFP 转到D5

 
回答的各位高手:
关于我问的二个问题,想再次表述如下:
1,关于编译通过但不能执行的问题,我看了一下,在整个系统中共有30个form 和20 个
quickreport报表文件,而且基本上都是静态建立的,这是否会耗用太多的系统资源,
如果是,那么这些系统资源主要是指什么,是否是内存,如果是内存,32M的和128M
为什么都会这样, 如果通过系统调整BDE内存,那么在未安装delphi5的微机中如何
调整?
2、关于在主文件之前闪现的模块程序,我编译后运行的情况是: 主程序启动后,该模块也随之
启动并在前端,该模块实际上是通过一个按钮调用的,而系统启动中并没有按下该按钮,
就执行了该模块这是什么原因?
谢谢高手赐教!




 
1,关于编译通过但不能执行的问题,我看了一下,在整个系统中共有30个form 和20 个
quickreport报表文件,而且基本上都是静态建立的,这是否会耗用太多的系统资源,
如果是,那么这些系统资源主要是指什么,是否是内存,如果是内存,32M的和128M
为什么都会这样, 如果通过系统调整BDE内存,那么在未安装delphi5的微机中如何
调整?

20个QuickReport的报表足以将内存占的慢慢的了,绝对不要这样使用!使用动态创建。
而且作为一个系统,基本都是主窗体自动创建,其他的任何一个都是动态创建,用完后就释放。
就是说:什么时间用,什么时候创建。
还有,你想通过BDE调整BDE所占内存,倒是部分可以,对于未安装Delphi5的计算机你照样得安装BDE,你得程序才能运行。
只是没有安装BDEAdmin.exe罢了,直接拷贝过去或者修改注册表。不过你的这个办法是治标不治本的。
 
2、关于在主文件之前闪现的模块程序,我编译后运行的情况是: 主程序启动后,该模块也随之
启动并在前端,该模块实际上是通过一个按钮调用的,而系统启动中并没有按下该按钮,
就执行了该模块这是什么原因?
你一定存在一些地方调用了该时间,比如Form的Create事件等,跟踪一下就清楚了,这个涉及的问题比较多。
 
改下delphi的option一項,把Auto-Create forms的窗口選到Available forms中﹐然后在
程序中動態加載窗體﹐這樣系統啟動速度會快好多﹗
 
yzhshi:
关于动态创建和释放窗口方面的技术给否给我提示一下如果时间宝贵几句话也可以,
我只是在制作闪屏时使用了动态创建窗口,而且该窗口很简单,属性和组件都很少,
如果把系统中的其它窗口都用动态创建,是否其属性都需要在程序中进行设置,
包括窗口的大小等,这样不是太麻烦吗?
如果把窗口改为动态创建,那么在关闭按钮的onclick 事件中把close; 换成 窗口名.free
就可以了吗?
 
哈哈﹗Sorry,誤導你了﹗我說的不是動態創建窗體﹐而是動態加載窗體!
Example:
if not assigned(form2) then
form2:=Tform2.create(nil);
form2.show;
另﹕
改下delphi的option一項,把Auto-Create forms的窗口選到Available forms中﹐然后在
程序中動態加載窗體.

不知道對你有沒有用﹗
 
后退
顶部