如何將動態宣告的TCppWebBrowser設進PageControl的sheet中呢? |
答題得分者是:RedSnow
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
爬了一會的文,不知道是不會設關鍵字還是怎樣?就是找不到如何設TCppWebBrowser的文@@"
看過站上的文,知道將物件加入sheet中時,需要將物件的parent設為該sheet
這點我在memo上試是ok的,
可是在TCppWebBrowser上卻失敗了,因為..."型態不合" 在key code的地方parent有兩個,一個是TWinControl *,一個是_di_IDispatch
如圖:
但選了TWinControl *的parent卻跑出了
[C++ Error] Unit1.cpp(168): E2031 Cannot cast from '_di_IDispatch' to 'TWinControl *'
這個錯誤,如圖:
強制轉換也沒用,查help卻又沒看到TWinControl *的parent的屬性
請問TCppWebBrowser的parent要底要怎麼設呢? ps.直接拉元件的話是可以的,如圖:
發表人 - haman 於 2005/09/19 22:32:11
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
下面是建立頁面的片段,其中PageName(String),FileName(String),CreatMode(bool),OpenMode(bool)是宣當在unit1.h public中的
void __fastcall TForm1::Button3Click(TObject *Sender) { Form3->Edit1->Text = ""; Form3->RGroup2->Enabled = false; Form3->RGroup1->ItemIndex = 0; PageName = ""; FileName = ""; Form3->ShowModal(); if(PageName != "") { TTabSheet *NewSheet = new TTabSheet(Pages); NewSheet->PageControl = Pages; NewSheet->Caption = PageName; if(CreatMode) //NEW TXT { TMemo *Memos = MemoCreat(NewSheet); Memos->Lines->SaveToFile(FileName); } else if(OpenMode) { String Htm = FileName.SubString(FileName.Pos(".") 1,3); if(Htm == "txt") //OPEN TXT { TMemo *Memos = MemoCreat(NewSheet); Memos->Lines->LoadFromFile(FileName); } else //OPEN HTM { TCppWebBrowser *Browser = new TCppWebBrowser(NewSheet); Browser->Parent = NewSheet; Browser->Navigate(Variant(FileName)); } } } }memocreat: TMemo* __fastcall TForm1::MemoCreat(TTabSheet *Sheet) { TMemo *NewMemo = new TMemo(Sheet); NewMemo->Visible = true; NewMemo->Parent = Sheet; return NewMemo; }Form3只是用來設定PageName(String),FileName(String),CreatMode(bool),OpenMode(bool)這4個變數的,在這個問題上似乎沒有影響, 不過我還是一併貼上 void __fastcall TForm3::Button1Click(TObject *Sender) { if(Edit1->Text != "") { Form1->PageName = Edit1->Text; switch(RGroup1->ItemIndex) { case 0: Form1->CreatMode = true; if(SaveDialog->Execute()) Form1->FileName = SaveDialog->FileName; else { Form1->FileName = ""; ShowMessage("請選擇存檔路徑"); } break; case 1: Form1->CreatMode = false; if(RGroup2->ItemIndex == 1) Form1->FileName = InputBox("請輸入網址","若您的檔案已存在於電腦中,請按取消",""); else { if(OpenDialog->Execute()) Form1->FileName = OpenDialog->FileName; else { Form1->FileName = ""; ShowMessage("請選擇一個檔案"); } } break; } } else { ShowMessage("請輸入Note名稱"); Edit1->SetFocus(); } Form3->Close(); }麻煩RedSnow大大了,感恩^^ |
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
|
haman
中階會員 發表:46 回覆:137 積分:56 註冊:2005-03-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |