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

CppWebBrowser1->Document 記憶體無法釋放

尚未結案
a007
一般會員


發表:1
回覆:2
積分:0
註冊:2002-11-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-18 20:09:02 IP:61.56.xxx.xxx 未訂閱
 
void __fastcall TForm2::CppWebBrowser1DocumentComplete(TObject *Sender,
      LPDISPATCH pDisp, Variant *URL)
{
    Variant disp, dh1, dh2, dh3, de1, de2, de3;
    disp = CppWebBrowser1->Document;        dh1 = disp.OleFunction("getElementById","bb1"); //取得網頁物件ID按鈕
    dh2 = disp.OleFunction("getElementById","bb2"); //取得網頁物件ID按鈕
    dh3 = disp.OleFunction("getElementById","bb3"); //取得網頁物件ID按鈕        if(! dh1.IsEmpty()) //如果有找到物件
    {
       de1 = dh1.OlePropertyGet("value"); //取得value的值
       de2 = dh2.OlePropertyGet("value"); //取得value的值
       de3 = dh3.OlePropertyGet("value"); //取得value的值
    }
}    
這是我動態建立出來的 Form2 我在Form2建立的CppWebBrowser1元件 如果我一直重復呼叫Form2 disp = CppWebBrowser1->Document; <---這一行會導致記憶體一直增加,我在xp觀察到的 如果沒有上述語法則 form2 (開啟)(關閉)記憶體也正常的釋放 一直找不到原因煩請前輩幫忙
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-19 01:38:14 IP:219.84.xxx.xxx 未訂閱
a007: 直接用CppWebBrowser1->Document的interface來達到功能。 如果用Variant去接他時,他會複製自已一份,但不會釋放自已。 像類似這種包裝好的delphi interface,最好不要做轉資料型....
a007
一般會員


發表:1
回覆:2
積分:0
註冊:2002-11-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-19 13:56:08 IP:61.56.xxx.xxx 未訂閱
pwipwi 前輩你好 請問你說的 (直接用CppWebBrowser1->Document的interface來達到功能) interface 我不知道它的使用方法找不到介紹使方法,他的意思是甚麼作用呢 可以請 pwipwi 給一段簡短範例嗎 感謝 pwipwi
a007
一般會員


發表:1
回覆:2
積分:0
註冊:2002-11-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-21 16:37:25 IP:61.56.xxx.xxx 未訂閱
 
void __fastcall TForm2::CppWebBrowser1DocumentComplete(TObject *Sender,
      LPDISPATCH pDisp, Variant *URL)
{
    CppWebBrowser1->Document;    }    
經過再一次長時間測試 CppWebBrowser1->Document; 只要加入這一語法就會無法釋放記憶體 但如果我改為 form2 不用動態建立 觀察記憶體即正常狀態 請大大們解釋一下讓小第了解這個迷
系統時間:2024-05-19 15:11:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!