起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 222|回复: 8

【结】资源集窗体调用空对象问题

[复制链接]
发表于 2010-5-5 09:10:26 | 显示全部楼层 |阅读模式
如下图,一个公共函数资源集中的方法调用另一个公共窗体库资源集中的窗体并弹出这个窗体,然后释放该窗体对象,但第二次调用并弹出这个窗体时出现系统提示空对象错误,代码如下图,不知道原因在哪儿,帮忙看看吧。

q.png

11.89 KB, 下载次数: 137

回复

使用道具 举报

发表于 2010-5-5 09:47:50 | 显示全部楼层
因为不知道你是怎么写的,我的代码参考如下,测试是ok的

资源集中的代码
...
  public
  procedure ButClick(Sender: TObject);
...
procedure TZYJ2.ButClick(Sender: TObject);
var
  lform : ZYJ1.TCT1;
  AContext : Business.Model.Tcontext;
begin
  AContext := Self.context;
  lform := ZYJ1.TCT1.create(AContext) ;
  try
    lform.showModal;
  Finally
    lForm.Free;
  end;
end;
...


功能中调用资源集的代码
...
public
procedure BitBtn1Click(Sender: TObject);
...

procedure TMainForm.BitBtn1Click(Sender: TObject);
var
  LZYJ:ZYJ2.TZYJ2;
begin
  LZYJ := ZYJ2.TZYJ2.Create(self.Context) ;
  try
    LZYJ.ButClick(sender);
  finally
    LZYJ.Free;
  end;
end;
...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-5 10:04:31 | 显示全部楼层
我的过程是功能中调用资源集A中的另一个方法penPic(),这个方法中会创建一个panel并且把panel
的点击事件用资源集A中的butClick(sender:TObject)方法赋值即panel.OnCLick=butClick,从而达到功能运行后点击panel调用butClick(sender:TObject)方法的目的。而butClick方法会调用并弹出另一个资源集的窗体lForm,是不是这样窗体lForm只能创建一次呢,?要不然为什么第一次点击panel
窗体lForm能弹出来,关闭之后再点击panel后lForm弹不出来,且系统提示地址访问错误,跟踪了
一下代码发现lForm是空对象。请问这样的逻辑是不是有问题,还是代码有问题?
点击
回复 支持 反对

使用道具 举报

发表于 2010-5-5 10:39:02 | 显示全部楼层
不会呀,我lform,即ZYJ1.TCT1 这个窗体也有一个按钮,
你的意思是第二次lform没有执行到创建,即 lform := commonformlib.tiradetailsform.create(Acontext) 这句话吗?

另外,你的try 放到位置不好,应该放到create下面,见2楼的参考代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-5 10:44:45 | 显示全部楼层
第二次lform := commonformlib.tiradetailsform.create(Acontext) 这句话执行时系统报错的,
有可能是try位置问题吧,我试试看。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-5 10:49:50 | 显示全部楼层
还是不行
回复 支持 反对

使用道具 举报

发表于 2010-5-5 10:52:56 | 显示全部楼层
你把你的东东传上来我看看,或者搞个简单重现的例子,我恢复环境看一下,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-5 14:25:25 | 显示全部楼层
帮我远程看看吧,实在没办法了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-5-6 11:14:39 | 显示全部楼层
暂时找不到原因,先结贴吧,
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 11:51 , Processed in 0.043839 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表