起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 130|回复: 6

[搞定]为什么Context是空对象?

[复制链接]
发表于 2007-12-14 12:39:40 | 显示全部楼层 |阅读模式
TCusTomBill声明为
  TCustomBill = class(TBizLibrary)  

下面的方法中,由于Self.Context为空对象,不能通过。

procedure TCustomBill.SetBillTypeParam(aBillType: string);
var
  lBizUrl: TBizUrl;
begin
  lBizUrl := TBizUrl.Create;
  try
    lBizURL.URL:='Biz:\HBLSYSTEM\DICT\CommonOperParamGroup.ParamGroup';
    BillTypeParam := SystemUtils.TContextUtils.GetParam(Context, lBizURL, 'BillType');
    BillTypeParam.Value := aBillType;
  finally
    lBizUrl.Free;
  end;
end;
回复

使用道具 举报

发表于 2007-12-14 14:12:17 | 显示全部楼层
您在使用之前,创建资源集传入的是什么环境?不会是nil吧?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-14 14:23:58 | 显示全部楼层
我的TCustombill只能这样建立:
begin
  case SysUtils.StrToInt(BillTypeCode) of
    10: result := TCustomBill.Create;
    20:.....
  else
....
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-14 14:33:27 | 显示全部楼层
最初由 yancm 发布
[B]您在使用之前,创建资源集传入的是什么环境?不会是nil吧? [/B]


不明白怎么传入,自建的Class只有一个Create方法。
回复 支持 反对

使用道具 举报

发表于 2007-12-14 14:42:17 | 显示全部楼层
需要override那个create方法。context是传入的
回复 支持 反对

使用道具 举报

发表于 2007-12-14 14:44:36 | 显示全部楼层
constructor Create(AContext: TContext);
    destructor Destroy; override;

这样定义
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-14 15:05:15 | 显示全部楼层
解决了,重写类的Create方法,增加Tcontext参数。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-2 07:59 , Processed in 0.039628 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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