線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1762
推到 Plurk!
推到 Facebook!

請問動態產生CppWebBrowser的問題

尚未結案
tsaikunhua
一般會員


發表:5
回覆:3
積分:1
註冊:2003-05-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-25 12:11:31 IP:163.28.xxx.xxx 未訂閱
void __fastcall TForm1::CppWebBrowser1BeforeNavigate2(TObject *Sender,       LPDISPATCH pDisp, TVariant *URL, TVariant *Flags,       TVariant *TargetFrameName, TVariant *PostData, TVariant        *Headers,TOLEBOOL *Cancel) {   ((TTabSheet*)(dynamic_cast (Sender)->Parent)) ->Caption = VarToStr(URL); } void __fastcall TForm1::CppWebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp, TVariant *URL) { Variant Doc = CppWebBrowser1->Document; Variant title = Doc.OlePropertyGet("title"); ((TTabSheet*)(dynamic_cast(Sender)->Parent)) ->Caption = String(title); dynamic_cast(Sender)->LocationName; } void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender, LPDISPATCH *ppDisp, TOLEBOOL *Cancel) { TTabSheet *newtab = new TTabSheet(PageControl4); TCppWebBrowser *newweb = new TCppWebBrowser(newtab); newtab->PageControl = PageControl4; newtab->Caption = "PageControl1"; newweb->ParentWindow = newtab->Handle; dynamic_cast(newweb)->Parent = newtab ; newweb->Align = alClient; newweb->OnNewWindow2 = CppWebBrowser1->OnNewWindow2 ; newweb->OnBeforeNavigate2 = CppWebBrowser1->OnBeforeNavigate2; newweb->OnDocumentComplete = CppWebBrowser1->OnDocumentComplete; *ppDisp = newweb->DefaultDispatch; } 請問各位阿...我寫一個類似KKman的應用程式,一開始我已經預設Form裡面會有 一Pagecontrol且有一Page,page中有一CppWebBrowser(程式碼如上述),接下來 執行時,如果有新視窗跳出,則會新增一page並也新增一CppWebBrowser... 但是我再執行程式時,假設已經新增一個新的Page及Browser,如果我關掉一開始 的CppWebBrowser1,則我在對新增的Browser做控制時便會發生錯誤情形,不曉得 為什麼會如此呢...這種情況可以解決嗎?? if ((PageControl4->PageCount) > 1) { delete PageControl4->Pages[PageControl4->ActivePageIndex]; } 這是關掉某各Page的程式碼
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-25 21:11:40 IP:61.221.xxx.xxx 未訂閱
引言: void __fastcall TForm1::CppWebBrowser1BeforeNavigate2(TObject *Sender, LPDISPATCH pDisp, TVariant *URL, TVariant *Flags, TVariant *TargetFrameName, TVariant *PostData, TVariant *Headers,TOLEBOOL *Cancel) { ((TTabSheet*)(dynamic_cast (Sender)->Parent)) ->Caption = VarToStr(URL); } void __fastcall TForm1::CppWebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp, TVariant *URL) { Variant Doc = CppWebBrowser1->Document; Variant title = Doc.OlePropertyGet("title"); ((TTabSheet*)(dynamic_cast(Sender)->Parent)) ->Caption = String(title); dynamic_cast(Sender)->LocationName; } void __fastcall TForm1::CppWebBrowser1NewWindow2(TObject *Sender, LPDISPATCH *ppDisp, TOLEBOOL *Cancel) { TTabSheet *newtab = new TTabSheet(PageControl4); TCppWebBrowser *newweb = new TCppWebBrowser(newtab); newtab->PageControl = PageControl4; newtab->Caption = "PageControl1"; newweb->ParentWindow = newtab->Handle; dynamic_cast(newweb)->Parent = newtab ; newweb->Align = alClient; newweb->OnNewWindow2 = CppWebBrowser1->OnNewWindow2 ; newweb->OnBeforeNavigate2 = CppWebBrowser1->OnBeforeNavigate2; newweb->OnDocumentComplete = CppWebBrowser1->OnDocumentComplete; *ppDisp = newweb->DefaultDispatch; } 請問各位阿...我寫一個類似KKman的應用程式,一開始我已經預設Form裡面會有 一Pagecontrol且有一Page,page中有一CppWebBrowser(程式碼如上述),接下來 執行時,如果有新視窗跳出,則會新增一page並也新增一CppWebBrowser... 但是我再執行程式時,假設已經新增一個新的Page及Browser,如果我關掉一開始 的CppWebBrowser1,則我在對新增的Browser做控制時便會發生錯誤情形,不曉得 為什麼會如此呢...這種情況可以解決嗎?? if ((PageControl4->PageCount) > 1) { delete PageControl4->Pages[PageControl4->ActivePageIndex]; } 這是關掉某各Page的程式碼
tsaikunhua 你好:
(1)我並沒有仔細看你的程式碼,不過,小弟我對你希望完成的目標有一些建議
(2)建議你的系統架構應該要做一些變更,這樣子~~事情會變得比較容易,那就
   是利用 TFrame 來達成目的
(3)在 BCB 6.0 的開發環境裡面,按 File/New/Frame 就會新增一個 Frame1,
   然後在這個 Frame1 上拉一個 CppWebBrowser1,最後再把 CppWebBrowser1
   的相關 event procedure 寫好就可以了
(4)接下來在你的 Main Form(也許是 Form1) 中,只需要動態新增 Frame1 然
   後貼到 TabSheet 裡面就可以了
(5)也就是說,在你的主程式中必須 maintain 所有的 TabSheet 及 Frame1
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-05-02 23:06:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!