我使用IntraWeb做gis开发,需要在服务器端打开一个对象保存用户端的操作状态,
如代码示例:
var MyObj:IMap;
MyObj:=coMap.Create;
MyObj.LoadMap('china map',1);
UserSession.UserObj:=MyObj;
但是这个UserSession.UserObj只是在这个过程中存在,过程结束就没了。也就是说还是非状态连接。我所知IntraWeb可以支持一些对象的状态连接,但是对于大部分CCOM/OLE都不支持状态连接,请哪位高手帮忙解决。分不够还可以加200。
如代码示例:
var MyObj:IMap;
MyObj:=coMap.Create;
MyObj.LoadMap('china map',1);
UserSession.UserObj:=MyObj;
但是这个UserSession.UserObj只是在这个过程中存在,过程结束就没了。也就是说还是非状态连接。我所知IntraWeb可以支持一些对象的状态连接,但是对于大部分CCOM/OLE都不支持状态连接,请哪位高手帮忙解决。分不够还可以加200。
TUserSession = class
public
Code:String;
Name:String;
Fdname:String;
end;
定义部分:
TUserSession = Class
Public
myObj:TMap;
end;
实现部分:
var mapObj:TMap;
mapObj:=TMap.Create;
mapObj.LoadMap('china',1);
TUserSession.myObj:=mapObj;
一直到这里都没有问题
可是在别的过程调用TUserSession.myObj的时候,该myObj
已经……Free了,我不能每次调用该对象时候都LoadMap一次,
因为一要记住用户对Map的操作状态,二是LoadMap的时候时间
比较长……所以,不知道怎么才能够保存这个对象的状态?
TUserSession = Class
Public
myObj:TMap;
end;
实现部分:
var mapObj:TMap;
mapObj:=TMap.Create;
mapObj.LoadMap('china',1);
TUserSession.myObj:=mapObj;