快来抢分呀!在C/S程序中关于中的启动顺序问题!(50分)

  • 主题发起人 主题发起人 goodzuoyu
  • 开始时间 开始时间
G

goodzuoyu

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在的程序需要在程序启动后自动访问数据表中的数据将所要的数据读入变量!
我用了两种方面一种像启动封面的那种方法:
将要访问数据表的语句放在Appilcation.run的附近结果在运行时提示错误

第二种方法:
将要访问数据表的语句放在服务器端的form的active的事件下,运行还是提示错误
第三种方法将要访问数据表的语句放在服务器端的数据模块的OnCreate这种方法当然还是不行了
我想这个问题应该不难,能帮一下我吗?
 
在ONSHOW一定可以
ONCREATE和RUN控件还没在内存创建,你能用才见鬼了
 
还是不行和以前一样提示:Access violation at address 0047425E in module'Project1.exe'.Read of address 00000000"
大家帮帮我呀! 我想这个问题不算困难吧!谢谢了
 
继承Create方法就行了
//在public下声明
public
constructor Create(AOwner: TComponent);override;

//然后写你的重载Create
constructor TForm1.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
//在这里添加你要执行的操作即可
end;
 
谢谢你!:bluenats!
可是还是不能错误提示和上次基本上差不多
 
我有个程序也用过在启动时就读数据库数据到变量中,没问题呀
就在form的create中开始取数据库数据
建议你开个新工程,做个简单的测试,应该可以的。
 
不知道你是怎么操作的,我经常这样用,没问题的
 
bluenats:其实你的写法,是创建完成后,执行你的后期操作,在这里和把处理放在onshow里是一样的
先重载,你先调用creat继承,虚程序方法重组inherited Create(AOwner);交由系统完成创建再处理
初始化窗体数据操作,要是onshow出错那么这么写好想用处不大
goodzuoyu:出错因该是你的数据调用上的问题,仔细看看你的启动顺序,是不是有的访问窗体或控件
没创建出来就调用了,看看program调整启动顺序,报错可是你访问了没有创建的变量或类[:D]
 
同意楼上的观点,其实我这么写也是习惯,搂主应当仔细查一下自己的调用代码
 
onShow可以的
 
首先,先谢谢你们能来回答我的问题,
可能我是太菜,所以我说的不太清楚,是这样的:
我的服务器就用了两个窗口(就算是窗口吧)。
一个是一个form上面就写了几个字,(就像李维书上的例子差不多)
一个是远程数据模块。
我是想让服务器每一次启动的时候自动的访问数据库,取得数据库中的部分数据来传回客户端。
其实我也知道错误的原因是数据模快中的访问数据库的控件还没有创建,我也知道需要调整启动的顺序。
可是我就不知道怎样去调整。
在program里面仅仅只有一个Application.CreateForm(TForm1, Form1);的语句,我再就没有办法了。我也不知道上面所说的
改变启动的顺序是不是指的是这个,
其实我的这个程序表面就和就像李维书上的例子差不多(delphi5.x分部式应用系统篇)。
还请各位大哥们帮帮忙。


 
首先,先谢谢你们能来回答我的问题,
可能我是太菜,所以我说的不太清楚,是这样的:
我的服务器就用了两个窗口(就算是窗口吧)。
一个是一个form上面就写了几个字,(就像李维书上的例子差不多)
一个是远程数据模块。
我是想让服务器每一次启动的时候自动的访问数据库,取得数据库中的部分数据来传回客户端。
其实我也知道错误的原因是数据模快中的访问数据库的控件还没有创建,我也知道需要调整启动的顺序。
可是我就不知道怎样去调整。
在program里面仅仅只有一个Application.CreateForm(TForm1, Form1);的语句,我再就没有办法了。我也不知道上面所说的
改变启动的顺序是不是指的是这个,
其实我的这个程序表面就和就像李维书上的例子差不多(delphi5.x分部式应用系统篇)。
还请各位大哥们帮帮忙。


 
这样在ONSHOW里肯定没问题,
如果还不行,就是你的程序本身的问题
 
谢谢大家,可能就是我的方法不对,我换了种方法,再用ONSHOW就可以了,
 
后退
顶部