About WebBrowser1DownloadComplete! |
尚未結案
|
hcker
中階會員 ![]() ![]() ![]() 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
我有一個WebBrowser1,每次WebBrowser1.Navigate之後,在WebBrowser1DownloadComplete
裏都執行不同的操作,我該如何去寫這個WebBrowser1DownloadComplete? 例如 WebBrowser1.Navigate:=xxxxx
當它完成後 procedure TTv.WebBrowser1DownloadComplete(Sender: TObject);
begin
{每次這裏的操作都不一樣}
end; 如何實現?謝謝,因為我只用了一個WebBrowser1,是不是可以在每次 執行完TTv.WebBrowser1DownloadComplete的動作後再初始,然後再重新自定義操作?thx ----------要知道自己有多笨,到DelphiK.Top來看看----------
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi hcker, 一個笨方法,先定義一個全域變數 CompleteActionCode,然後先指定 CompleteActionCode 再進行瀏覽 CompleteAction := YourActionCode;
WebBrowser1.Navigate:=xxxxx; 最後在 WebBrowser1 的 OnDocumentComplete 事件中,再根據 CompleteActionCode 作不同處理
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); begin CASE CompleteActionCode OF 1 : BEGIN Action1 ..... END; 2 : BEGIN Action2 ..... END; 3 : BEGIN Action3 ..... END; ELSE Action Others ..... END; CompleteActionCode := -1; end;
------
Fishman |
hcker
中階會員 ![]() ![]() ![]() 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
change.jian
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
Hcker,您好:
原則上我也是像Fishman大大一樣的做法,不過,我以URL為依據來處理的.先做個陣列的對照表,即某個URL對照到某個procedure,當然,這些procedure必需事先定義成一個type,才好方便寫程式.會以URL做為執行procedure的索引,除了TWebBrowser.DownloadComplete的限制外,另外也是為了解決網頁有切frame的問題,例如有個網頁切了三個frame,那麼便會觸發三次的DownloadComplete,要知道現在到底那個frame完成了,就是靠URL來識別的.(當初在寫程式時,出現明明觸發了DownloadComplete的事件,但網頁該有的物件卻不見得每次都存在,追bug追了好久,最後才發現是這個原因).這樣應該可以應付每次執行的程序都不一樣的問題,但不會把程式碼搞得很複雜 給您做個參考
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |