在 TCppWebBrowser 中,如何存取 HTML 的內容 |
缺席
|
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
我希望可以利用 BCB 在 TCppWebBrowser 中動態地變更其 HTML 的內容,例如動態地加入文字、tag …等,然後 TCppWebBrowser 動態地更新。我現在的作法是利用 Stream 形式,把內容變更後,重新把全部內容再存入 TCppWebBrowser 中顯示出來,但這作法太慢了。畫面有很明顯的閃爍,最糟的是,當使用者在 HTML 表單中的 Textbox 輸入文字時,若此時畫面更新,使用者所輸入的資料便清空了。所以我希望能直接變更 TCppWebBrowser 其中的部份內容。不知大家有沒有好的建議,可供參考呢?謝謝各位。 Anthony Lee
|
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我希望可以利用 BCB 在 TCppWebBrowser 中動態地變更其 HTML 的內容,例如動態地加入文字、tag …等,然後 TCppWebBrowser 動態地更新。我現在的作法是利用 Stream 形式,把內容變更後,重新把全部內容再存入 TCppWebBrowser 中顯示出來,但這作法太慢了。畫面有很明顯的閃爍,最糟的是,當使用者在 HTML 表單中的 Textbox 輸入文字時,若此時畫面更新,使用者所輸入的資料便清空了。所以我希望能直接變更 TCppWebBrowser 其中的部份內容。不知大家有沒有好的建議,可供參考呢?謝謝各位。skcc 你好: 方便把你的做法貼上來嗎??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
引言: skcc 你好: 方便把你的做法貼上來嗎?? |
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 若果把 Stream 的 HTML 內容更新,然後再以上述方法,重新存到 Browser 中。但這作法太慢了。畫面有很明顯的閃爍,最糟的是,當使用者在 HTML 表單中的 Textbox 輸入文字時,若此時畫面更新,使用者所輸入的資料便清空了。其實我的最終目的是想在 BCB 中作 HTML Dialog,不知 RaynorPao 兄或其他大大有什麼好建議。skcc 你好: 請問一下~~你的程式碼中是不是少了什麼呢??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
引言: skcc 你好: 請問一下~~你的程式碼中是不是少了什麼呢?? |
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 由於這些 Code 我是撮錄出來,所以導致不清不楚,我重新把 code 再登一次好了。skcc 你好: 不知道是不是我誤解了你的意思??
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
引言:引言: 由於這些 Code 我是撮錄出來,所以導致不清不楚,我重新把 code 再登一次好了。skcc 你好: 不知道是不是我誤解了你的意思?? |
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
引言: skcc 你好: 真是不好意思~~本來想幫忙你的 卻反而要你幫忙看問題~~希望你不要笑我 |
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
解決了!我終於可在 TCppWebBrowser 中直接存取它的 tag,其作法十分簡單,對一些欲作 DHTML Dialog 的朋友十分有用,我現在就把方法公開。
首先假設你的 HTML 中含有以下 statement:
.. .. <body> <P ID="para1"> This is the first paragraph on a simple page. </P> <P ID="para2"> This is the second paragraph on a simple page. </P> .. ..假設上述的 HTML 已經載入了 TCppWebBrowser 中。現在假設我們要將 ID 為 para2 的 tag 之內容變更: void __fastcall TForm1::Button1Click(TObject *Sender) { Variant Doc = CppWebBrowser1->Document; Variant Tag_all = Doc.OlePropertyGet("all"); Variant Tag_para2 = Tag_all.OleFunction("item","para2"); Tag_para2.OlePropertySet("innerText","Hello"); }當使用者在你的程式中按下 Button1,在 TCppWebBrowser 元件中的 para2 的 tag 之內容馬上變為 Hello 字串。 Anthony Lee |
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 解決了!我終於可在 TCppWebBrowser 中直接存取它的 tag,其作法十分簡單,對一些欲作 DHTML Dialog 的朋友十分有用,我現在就把方法公開。 首先假設你的 HTML 中含有以下 statement:哇< >~~好厲害耶< > 謝謝 skcc 的熱心分享.. .. <body> <P ID="para1"> This is the first paragraph on a simple page. </P> <P ID="para2"> This is the second paragraph on a simple page. </P> .. ..假設上述的 HTML 已經載入了 TCppWebBrowser 中。現在假設我們要將 ID 為 para2 的 tag 之內容變更:void __fastcall TForm1::Button1Click(TObject *Sender) { Variant Doc = CppWebBrowser1->Document; Variant Tag_all = Doc.OlePropertyGet("all"); Variant Tag_para2 = Tag_all.OleFunction("item","para2"); Tag_para2.OlePropertySet("innerText","Hello"); }當使用者在你的程式中按下 Button1,在 TCppWebBrowser 元件中的 para2 的 tag 之內容馬上變為 Hello 字串。 Anthony Lee
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
skcc
中階會員 ![]() ![]() ![]() 發表:36 回覆:96 積分:88 註冊:2002-08-28 發送簡訊給我 |
引言:引言: 解決了!我終於可在 TCppWebBrowser 中直接存取它的 tag,其作法十分簡單,對一些欲作 DHTML Dialog 的朋友十分有用,我現在就把方法公開。 首先假設你的 HTML 中含有以下 statement:哇< >~~好厲害耶< > 謝謝 skcc 的熱心分享.. .. <body> <P ID="para1"> This is the first paragraph on a simple page. </P> <P ID="para2"> This is the second paragraph on a simple page. </P> .. ..假設上述的 HTML 已經載入了 TCppWebBrowser 中。現在假設我們要將 ID 為 para2 的 tag 之內容變更:void __fastcall TForm1::Button1Click(TObject *Sender) { Variant Doc = CppWebBrowser1->Document; Variant Tag_all = Doc.OlePropertyGet("all"); Variant Tag_para2 = Tag_all.OleFunction("item","para2"); Tag_para2.OlePropertySet("innerText","Hello"); }當使用者在你的程式中按下 Button1,在 TCppWebBrowser 元件中的 para2 的 tag 之內容馬上變為 Hello 字串。 Anthony Lee |
RaynorPao
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 為了解決這個問題,我曾經在 MSDN 中找到 WebBrowser Control 中的 HTML 之 DOM,而其中的 "IHTMLElement Interface" 一章中,更有介紹 IHTMLElement 的 Method 和 Property,其網止如下: http://msdn.microsoft.com/library/default.asp?url=/workshop/browser/mshtml/reference/ifaces/ihtmlelement/insertadjacenthtml.asp 內裡還有很多實用的 Method ,例如:"insertAdjacentHTML",以下為小弟的小小 demo:skcc 你好: 果然是一個很好、很實用的 Interface 值得好好的研究、研究Variant Doc = CppWebBrowser1->Document; Doc.OlePropertyGet("body").OleFunction( "insertAdjacentHTML", "AfterBegin", "大家好!");上述的 Code 會使 HTML 的內容加入 "大家好!" 字串在開端。 還有很多 Method 和 Property 的實用方法,我也試了出來。有興趣的朋友,可以大家討論討論。 Anthony Lee
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
Blueberrug
一般會員 ![]() ![]() 發表:14 回覆:50 積分:17 註冊:2005-05-22 發送簡訊給我 |
您好: 我照著你的方式 試著用TMemoryStream讀一個EML檔案, 不知道WebBrowser會將信件的原始碼一起顯示呢? 而不像WebBrowser直接讀EML檔案時, 只會顯示信件內容而已。 是否可以教教小弟呢? 謝謝您們的幫忙啊! ===================引 用 文 章=================== 引言: skcc 你好: 方便把你的做法貼上來嗎?? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |