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

如何指定新tabsheet上的新WebBrowser

答題得分者是:timhuang
wzpuma
一般會員


發表:10
回覆:19
積分:5
註冊:2003-02-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-13 16:16:34 IP:218.5.xxx.xxx 未訂閱
我曾提了个问题,名为“pagecontrol上放了WebBrowser,点击链接后产生新的tabsheet ”,后经timhuang兄和wushang兄指点,问题解决了。原文见 "http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26523" 假设我在pagecontrol控件上放了WebBrowser控件,点击链接后产生新的tabsheet,上面有新的WebBrowser(这些问题已解决),现随意点一新tabsheet(比如是tabsheet3,上面自然已有个新WebBrowser),希望取这个新WebBrowser的文档标题,协议,背景色等信息, 问题是该如何指定该新WebBrowser,我的代码如下: procedure TForm1.showdoc(doc:IHtmlDocument2); begin Fdoc:=doc; edit1.text:=fdoc.URL; edit1.text:=fdoc.Protocol; ...... end; procedure TForm1.ToolButton1Click(Sender: TObject); var nowweb:TWebBrowser;//当前WebBrowser Htmldoc: IHtmlDocument2; nowtab : TTabSheet;//当前页 begin nowtab:=pagecontrol1.ActivePage; nowweb.ParentWindow := nowtab.Handle; TOleControl(nowweb).Parent :=nowtab; Htmldoc := nowweb.Document as IHtmlDocument2; showdoc(doc); end; 运行后却不对,该如何改? 另外上次的代码写的程序,上有些网站(如www.21cn.com 或www.sohu.com),弹出广告条有时只产生一个空白的TTabSheet,上面并无TWebBrowser,若取其上的文档标题,协议等信息,自然会出错,改如何加一if语句判断TTabShee上面有无TWebBrowsert,或干脆不产生空白的TTabSheet? 發表人 - wzpuma 於 2003/03/13 19:35:57
wushang
一般會員


發表:2
回覆:13
積分:13
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-13 20:10:19 IP:218.16.xxx.xxx 未訂閱
判斷當前TABSHEET上是否有WEBBROWSER﹐請參考﹕ procedure TForm1.PageControl1Change(Sender: TObject); var i : integer; HaveWeb : boolean;//為true則指定TABSHEET上有WEBBROWSER CurrentWeb : TWebBrowser;//指定TABSHEET上的WEBBROWSER begin HaveWeb := false; if PageControl1.ActivePage.ControlCount=0 then HaveWeb := false//當前TABSHEET上沒有任何控件 else begin for i := 0 to PageControl1.ActivePage.ControlCount-1 do if PageControl1.ActivePage.Controls[i].ClassType = TWebBrowser then begin HaveWeb := true;//如果發現第I個控件是TWebBrowser﹐則說明找到 CurrentWeb := PageControl1.ActivePage.Controls[i];//也就是當前的TWebBrowser break;//跳出循環 end; if Haveweb then Form1.caption := 'Have WebBrowser' else Form1.caption := 'NO'; end; 發表人 - wushang 於 2003/03/13 20:22:46 發表人 - wushang 於 2003/03/13 20:26:29
wushang
一般會員


發表:2
回覆:13
積分:13
註冊:2003-02-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-13 21:10:11 IP:218.16.xxx.xxx 未訂閱
順便問一下wzpuma兄﹐如何獲得當前WEBBROWSER的一些信息﹐例如其中的超聯接等﹖
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-13 21:18:33 IP:61.221.xxx.xxx 未訂閱
引言: procedure TForm1.ToolButton1Click(Sender: TObject); var nowweb:TWebBrowser;//当前WebBrowser Htmldoc: IHtmlDocument2; nowtab : TTabSheet;//当前页 begin nowtab:=pagecontrol1.ActivePage; nowweb.ParentWindow := nowtab.Handle; TOleControl(nowweb).Parent :=nowtab; Htmldoc := nowweb.Document as IHtmlDocument2; showdoc(doc); end;
hi, 請修改為:
procedure TForm1.Button3Click(Sender: TObject);
var
  nowweb:TWebBrowser;
  Htmldoc: IHtmlDocument2;
  nowtab : TTabSheet;
  i: Integer;
begin
  nowtab := PageControl1.ActivePage;
  for i := 0 to nowtab.ControlCount - 1 do
  begin
    if nowtab.Controls[i] is TWebBrowser then
    begin
      nowweb := nowtab.Controls[i] as TWebBrowser;
      break;
    end;
  end;
  if nowweb <> nil then
  begin
    Htmldoc := nowweb.Document as IHtmlDocument2;
    showdoc(Htmldoc);
  end;
end;
試試看!!
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-13 21:52:29 IP:61.221.xxx.xxx 未訂閱
引言: 順便問一下wzpuma兄﹐如何獲得當前WEBBROWSER的一些信息﹐例如其中的超聯接等﹖
hi, 可以使用 IHtmlDocument2 中的 links, forms, images... 等來取得. 例如取得所有 links 如下:
procedure TForm1.showlinks(doc: IHtmlDocument2);
var
  ha : IHTMLAnchorElement;
  i : integer;
begin
  for i := 0 to doc.links.length - 1 do
  begin
    ha := doc.links.item(i, 0) as IHTMLAnchorElement;
    showmessage(ha.href);
  end;
end;
其餘的可以自行嘗試看看..
wzpuma
一般會員


發表:10
回覆:19
積分:5
註冊:2003-02-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-14 10:22:46 IP:218.5.xxx.xxx 未訂閱
引言: 判斷當前TABSHEET上是否有WEBBROWSER﹐請參考﹕
我试了一下,如上“www.21cn.com",弹出广告条有时只产生一个空白的TTabSheet,上面看不见TWebBrowser,但用wushang兄的代码却显示'Have WebBrowser',可见上面确有TWebBrowser,只是显不出来。
系統時間:2024-05-14 16:21:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!