全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1373
推到 Plurk!
推到 Facebook!

關於ActiveX的記憶體問題

 
smallbridge
一般會員


發表:7
回覆:19
積分:5
註冊:2003-07-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-08-01 09:13:45 IP:58.33.xxx.xxx 未訂閱
ActiveX中打开多个带ActiveX

如果在ActiveX

Jasonwong
版主


發表:49
回覆:931
積分:581
註冊:2006-10-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-08-01 11:53:09 IP:211.78.xxx.xxx 未訂閱

請你把你發生錯誤的 SOURCE 列上來好嗎

這樣很難去理解你的問題

------
聰明的人,喜歡猜心;雖然每次都猜對了,卻失去了自己的心
傻氣的人,喜歡給心;雖然每次都被笑了,卻得到了別人的心
smallbridge
一般會員


發表:7
回覆:19
積分:5
註冊:2003-07-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-08-01 13:13:29 IP:58.33.xxx.xxx 未訂閱

全部Source太多,不好贴,大致是这样的:

在 implementation 之上定义了一个全局变量

var FManager : TManager;

在ActiveX 的 constructor Create(AOwner: TComponent); override; 方法中 初始化

在 destructor Destroy; override; 方法中释放
现在的问题,是当ActiveX嵌入页面后只打开一个页面完全没有问题,当同时打开多个带有插件的页面时就出地址错误。

后来跟踪发现,第一个页面未关闭的情况下, 第二个打开的页面创建的 FManager 和第一个在同一个内存区,会覆盖上一个页面创建的,当关闭任何页面的时候,FManager 被释放了。对于其他未关闭的页面FManager 为空了。

smallbridge
一般會員


發表:7
回覆:19
積分:5
註冊:2003-07-29

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-08-01 13:16:41 IP:58.33.xxx.xxx 未訂閱

难道在ActiveX中不能有全局变量? 多个带有插件的页面中的全局变量会相互覆盖。各位大大有什么解决方法吗?

JackTasy
初階會員


發表:22
回覆:97
積分:28
註冊:2002-06-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-08-01 18:19:00 IP:211.21.xxx.xxx 未訂閱
該變數是要改所有 user (client session) 共用的嗎?
把變數宣告在 implemention 下面,而非在上面試試看.
------
JackTasy
smallbridge
一般會員


發表:7
回覆:19
積分:5
註冊:2003-07-29

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-08-01 18:54:36 IP:58.33.xxx.xxx 未訂閱

放到 implemention 下定义是一样的,我发现无论在 implemention 之上还是之下定义在ActiveX下在多个页面打开的情况下,变量都会被其他页面插件改变,这可能源于对IE来说,同一个主页面内打开的所有子页面都属于主IE窗口。其ActiveX全局变量是共享的。

难道没有解决办法,只能把变量改称ActiveX的局部变量吗?

JackTasy
初階會員


發表:22
回覆:97
積分:28
註冊:2002-06-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-08-02 00:25:09 IP:61.224.xxx.xxx 未訂閱
從你的描述看來,可能ActiveX在Allocate Memory Instance時,也是根據 IE Session ID 來區別的吧。因為你說再同一個頁面裡面,那表示多個 ActiveX Object 都是同ㄧ個 Session ID的。
若真如此,可能在程式設計上,就要思考自己建立一個 rule 來避開,並達成你想要的樣子了吧。

===================引 用 文 章===================

这可能源于对IE来说,同一个主页面内打开的所有子页面都属于主IE窗口。其ActiveX全局变量是共享的。


------
JackTasy
系統時間:2024-04-27 23:49:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!