如何判斷webBrowser已下載完成 |
答題得分者是:Windyboy
|
lsleo
一般會員 發表:19 回覆:28 積分:9 註冊:2003-05-28 發送簡訊給我 |
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
|
lsleo
一般會員 發表:19 回覆:28 積分:9 註冊:2003-05-28 發送簡訊給我 |
|
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
try it^_^ procedure TForm1.Button1Click(Sender: TObject);
var
sURL : array[1..5] of String;
i : Integer;
begin
sURL[1] := 'http://tw.yahoo.com/';
sURL[2] := 'http://www.msn.com.tw/';
sURL[3] := 'http://www.pchome.com.tw/';
sURL[4] := 'http://www.sina.com.tw/';
sURL[5] := 'http://delphi.ktop.com.tw/';
for i := 1 to 5 do
begin
WebBrowser1.Navigate(sURL[i]);
while True do
begin
Application.ProcessMessages();
if not WebBrowser1.Busy then break;
end;
end;
end; --------------------------
~天下本無事 庸人自擾之~
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
我有用過WebBrowser的Busy的確是沒有作用,所以就改在其OnDocumentComplete事件裡面用一個變數來判斷是否該文件下載完畢!
如:
WebBrowser1.OnDocumentComplete
begin
Busy :=False;
end; .......
.....
WebBrowser1.Navigate(.....)
Busy :=True;
while Busy do
begin
....
end; 若您是用ShellWindow來控制IE的話,那其Busy就有作用! GPS(全球衛星定位系統)
http://www.allgps.com
------
GPS(全球衛星定位系統) http://www.allgps.com |
Windyboy
版主 發表:7 回覆:119 積分:210 註冊:2002-11-07 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 不好意思..想請教各位 使用webBrowser時有沒有方法或屬性可以知道網頁已下載完成 謝謝~ PS:不是由OnDocumentComplete判斷的情況下lsleo 你好: 可以這樣子寫 < class="code"> while Webbrowser.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; ShowMessage('下載完成'); -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
avex
初階會員 發表:19 回覆:49 積分:43 註冊:2003-03-28 發送簡訊給我 |
|
lsleo
一般會員 發表:19 回覆:28 積分:9 註冊:2003-05-28 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
|
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
引言: Hi Clarinet: WebBrowser.Busy沒作用?? 可是我那段code可以正常運作耶^_^ 我是Run過後才Post上來的:(, 怪了@_@'' 我再研究研究...:D P.S. 不過, 我通常都是把判斷完成的Code寫在OnDocumentComplete就是了.:) -------------------------- ~天下本無事 庸人自擾之~Hi, 您好! WebBrowser.Busy 無作用,我也不太能確定! 我是在一個網頁上的Form Action上,按下Action的按鈕之後,以WebBrowser.Busy來判斷是否已完成查詢的動作。 我試的結果的確是無任何作用,WebBrowser.Busy的值永遠為False。 因此才改為由onDocumentComplete來判斷。至少這個比較準! 而我認為Form 的Action按鈕,和Navigate(…)的動作,應該一樣吧! 所以才會說 WebBrowser.Busy無作用。 因此,Navigate(…)後的WebBrowser.Busy有無作用,就不太確定了! 所以,若是用WebBrowser時,都改由onDocumentComplete來判斷,比較好! ShellWindow控制IE就無此問題了!覺得有點怪怪的。IE和WebBrowser都是用同樣的東西,但WebBrowser就都有某些問題存在! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統) http://www.allgps.com |
Clarinet
高階會員 發表:9 回覆:97 積分:126 註冊:2002-05-08 發送簡訊給我 |
剛仔細看了您的部份,又想到了可能原因。(因為那是很久之前寫的程式)
一開始是用ShellWindow來做,後來改用WebBrowser來做(為了把它納入我的程式內)。 我是用
....Submit;
While WebBrowser.Busy do
Application.Processmessage; 而大大您的是用 while True do
begin
Application.Processmessage;
if not WebBrowser.Busy then Break;
end; 或許是因為下完命令之後,WebBrowser.Busy的狀態還來不及改變,所以才會造成我感覺WebBrowser.Busy的無作用(因為相同的東西在IE內是正常的)。或許是這個原因!
有空時再把很久之前寫的這支程式拿來測試看看,或許是如此吧!
不過,我還是不太喜歡用WebBrowser,因為有些許的問題!
------
GPS(全球衛星定位系統) http://www.allgps.com |
sneaky
一般會員 發表:0 回覆:1 積分:0 註冊:2004-03-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |