MDI窗口相关,困扰我好两天了。(30分)

  • 主题发起人 主题发起人 wp531
  • 开始时间 开始时间
W

wp531

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序有四个窗口,table1属于form4,datasource1、query1属于form3,
一开始form3.datasource1.dataset:=query1;在form4的输入按钮的click事件中,
有3行代码:
Form3.DataSource1.DataSet := Table1;
Table1.Edit;
Table1.Append;
可是每当程序运行到第一行时,就出错了。而我又新建立的新程序做试验,却可以通过,
不知问题出在什么地方了。错误提示是:Access violation at address 004AE33D in
module 'lib.exe'.Read of address FFFFFFFF.这时我发现table1.active:=False;
改为true后,程序刚一启动就死了。但在试验中,query1和table1的active属性都为true;
说明:form3为MDIChild类型,form4是自动创建的窗口。

我又重新试验了一下,发现这和MDI类型的窗口有关,不知道为什么?
请高手解答!急急急!!!
 
玩MDI窗体不要随便互相调用,因为MDI窗体一般要动态创建的
最好将数据库元件都放在一个DataModule里面,引用和管理也方面一些
 
Agree luyear!
 
同感,MDI窗口问题多多,真是得放弃了,从子窗体(动态)中弹出模式窗体也错,第一次子窗体启动
时,嘛问题没有,关掉(Action=caFree; BCB ),再来,弹几次就错,不知道毛病出在哪儿,
真是费时间,好象是销毁窗口的时候错了,好象这是BCB(DELPHI)特有的问题,VB我用的时
候没这毛病,真是邪门,没时间了……
 
最好请高手讲一下机理,原来子窗体动态创建觉得和普通的窗口没什么两样,按钮弹出个模
态窗口,好象也是正常。后来发现这是有讲究的,动态的窗体销毁后重建,居然和第一次创
建产生的反应不一样了,
 
delphi 的 MDI 烂透啦,没VB好
 
不是吧,我很喜欢用MDI的,都是动态生成,试过N次都没有出现过这种问题啊。不过子窗口
第一次显示过程的闪动一直没法解决,borland公司也没给出什么办法。
 
to emonster:你所说的问题是不是可以通过将子窗口的显示属性在开始的时候置为caHIDE来解决啊??

to WP531:你是不是应该在设置DATASET之前先激活FORM3啊,我记得要不会出问题的
 
to jackie_woo,我的问题很多人的提法是用WINAPI函数LOCKWINDOWUPDATE()函数来解决
但试过不行,设置caHide好象会报错吧,明天试一试。
 
dm,方便管理
 
如果form3 Close时caAction =caFree则form3.datasource1=nil,如果读datasource1的任意属性均会发生所述错误。
 
多人接受答案了。
 
后退
顶部