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

在 BCB 中要達成這種效果

尚未結案
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-27 17:56:03 IP:220.130.xxx.xxx 未訂閱
以下是 akai 兄發表的 delphi 程式節錄    http://delphi.ktop.com.tw/topic.php?topic_id=50859
procedure TNewWebBrowser.SetHtml(Value: WideString);
var
  vv: Variant;
  HTMLDocument: IHTMLDocument2;
begin
  vv := VarArrayCreate([0, 0], varVariant);
  vv[0] := Value;
  HTMLDocument := Self.Document as IHTMLDocument2;
  HTML(pSafearray(TVarData(vv).VArray));
  HTMLDocument.close;
end;
目前卡在這一段,我無法正確寫入 即使看了 MSDN 上 Safearray 的建立法,還是不知道這樣的意義為何 寫入字串的使用法
begin
  if NewWebBrowser2.Html=#13#10'<BODY></BODY>' then
    NewWebBrowser2.Html:=NewWebBrowser1.Html
  else
    NewWebBrowser2.Html:=NewWebBrowser2.Html '
' NewWebBrowser1.Html;
  NewWebBrowser1.Html:='';
end;
在 BCB 要做到這種效果,一定要很麻煩嗎 ? 我試了好幾次,不行就是不行,可是這種方便的使用法對我又有很大的誘惑, 我很不願意放棄,請問各位這要怎麼做 ?
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-01 16:34:55 IP:210.58.xxx.xxx 未訂閱
要在CppWebBrowser中顯示自己的HTML 我的解決方法是 第一先用CppWebBrowser瀏覽任一頁面例如"about:blank" (為了產生CppWebBrowser->Document) 這個問題我還沒解決    再來就是寫入HTML
void SetHtml(AnsiString HHMLText)
{
    Variant disp;
    disp = CppWebBrowser1->Document;
    disp.OleFunction("write",HTMLText);
    disp.OleFunction("close");
}
就會顯示你的HTML了
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-02 01:43:19 IP:219.81.xxx.xxx 未訂閱
引言: 要在CppWebBrowser中顯示自己的HTML 我的解決方法是 第一先用CppWebBrowser瀏覽任一頁面例如"about:blank" (為了產生CppWebBrowser->Document) 這個問題我還沒解決 這個我也還沒解決,所以這個步驟似乎是必要的 再來就是寫入HTML
void SetHtml(AnsiString HHMLText)
{
    Variant disp;
    disp = CppWebBrowser1->Document;
    disp.OleFunction("write",HTMLText);
    disp.OleFunction("close");
}
就會顯示你的HTML了
開始咒罵自己怎麼會笨到這個地步 ... -_- 居然沒查到 OleFunction 可以這麼做 請問這類 OLE 控制的相關訊息和用法要怎麼查詢呢 ? 太感謝了 m(_ _)m 試看看有沒有問題,就可以結案了 發表人 -
artist1002
高階會員


發表:2
回覆:155
積分:151
註冊:2002-09-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-11-02 03:53:36 IP:210.58.xxx.xxx 未訂閱
引言:
引言: 要在CppWebBrowser中顯示自己的HTML 我的解決方法是 第一先用CppWebBrowser瀏覽任一頁面例如"about:blank" (為了產生CppWebBrowser->Document) 這個問題我還沒解決 這個我也還沒解決,所以這個步驟似乎是必要的 再來就是寫入HTML
void SetHtml(AnsiString HHMLText)
{
    Variant disp;
    disp = CppWebBrowser1->Document;
    disp.OleFunction("write",HTMLText);
    disp.OleFunction("close");
}
就會顯示你的HTML了
開始咒罵自己怎麼會笨到這個地步 ... -_- 居然沒查到 OleFunction 可以這麼做 請問這類 OLE 控制的相關訊息和用法要怎麼查詢呢 ? 太感謝了 m(_ _)m 試看看有沒有問題,就可以結案了 發表人 - >< face="Verdana, Arial, Helvetica"> 我在另ㄧ篇有回比較詳細的,請參考看看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=55441
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-11-03 01:49:13 IP:219.81.xxx.xxx 未訂閱
引言: 我在另ㄧ篇有回比較詳細的,請參考看看 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=55441
謝謝 >
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-17 14:46:48 IP:220.130.xxx.xxx 未訂閱
引言: 以下是 akai 兄發表的 delphi 程式節錄 http://delphi.ktop.com.tw/topic.php?topic_id=50859
procedure TNewWebBrowser.SetHtml(Value: WideString);
var
  vv: Variant;
  HTMLDocument: IHTMLDocument2;
begin
  vv := VarArrayCreate([0, 0], varVariant);
  vv[0] := Value;
  HTMLDocument := Self.Document as IHTMLDocument2;
  HTML(pSafearray(TVarData(vv).VArray));
  HTMLDocument.close;
end;
自己補
void __fastcall TForm1::SetMessage(WideString &SS)
{
  int Bounds[2] = {0,0} ;
  Variant Str ; 
  IHTMLDocument2 *Htmldoc = NULL ;      Str = VarArrayCreate(Bounds,1,varVariant);
  Str.PutElement(SS,0) ;
  Htmldoc->write( (SAFEARRAY *)(TVarData(Str).VArray ));
  Htmldoc->Release() ;
 
  或是       Variant Str = CppWebBrowser1->Document;
  Str.OleFunction("write",SS);      或是      Variant Str = CppWebBrowser1->Document;
  Str.OlePropertyGet("body").OleFunction("insertAdjacentHTML","beforeEnd",SS);    }
以上三種皆可 發表人 - xfile 於 2004/11/18 00:40:57
系統時間:2024-04-26 0:05:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!