Delphi處理TWebBrowser的Close事件
當TWebBrowser控制元件訪問的 Web 頁上的指令碼呼叫window.close方法時,TWebBrowser控制元件可能會在窗體中消失。我們的程式應該對此作出反應,否則再次訪問TWebBrowser控制元件將引發異常。當TWebBrowser控制元件銷燬前會向其父視窗(即我們的程式窗體)傳送WM_PARENTNOTIFY訊息,訊息的wParam引數的低字部分為:WM_DESTROY,lParam引數為TWebBrowser控制元件的視窗控制程式碼。我們可以響應該訊息處理TWebBrowser的Close事件,程式碼如下:
在窗體的定義新增申明:
procedure WBClose(var Msg:TMessage);message WM_PARENTNOTIFY;
在實現部分新增具體程式碼:
procedure TForm1.WBClose(var Msg: TMessage);
begin
if Msg.WParamLo = WM_DESTROY then //物件被銷燬訊息
if UInt(Msg.LParam) = WebBrowser1.Handle then //WebBrowser1被銷燬
Close; //關閉窗體本身
end;
相關文章
- Delphi中TWebBrowser中注入JsWebJS
- 事件處理事件
- java中的事件處理Java事件
- Delphi處理JSON格式資料JSON
- Flutter | 事件處理Flutter事件
- JavaScript事件處理JavaScript事件
- React事件處理React事件
- vue事件處理Vue事件
- IE事件處理事件
- 事件相容處理事件
- JS事件處理JS事件
- javaScript事件(二)事件處理程式JavaScript事件
- freeswitch的event事件處理事件
- redis的事件處理機制Redis事件
- Delphi資料壓縮處理(1) (轉)
- Delphi資料壓縮處理(2) (轉)
- react之事件處理React事件
- wx處理滑鼠事件事件
- 事件分發之View事件處理事件View
- 事件冒泡、事件捕獲、DOM0級事件處理程式、DOM2級事件處理程式事件
- React 中常用的事件處理方式React事件
- 有研究Bindows事件處理的嗎?事件
- 控制檯程式的事件處理 (轉)事件
- 事件分發和處理事件
- Laravel 事件&非同步處理Laravel事件非同步
- DFS lock handle事件處理事件
- 用Delphi處理公曆到農曆的轉換 (轉)
- Nginx 超時事件的處理機制Nginx事件
- [轉] Scala 中的非同步事件處理非同步事件
- nginx 是如何處理過期事件的?Nginx事件
- 基於python的事件處理模型Python事件模型
- React 深入系列5:事件處理React事件
- tabbar凸起點選事件處理tabBar事件
- Java——事件處理機制概要Java事件
- 自定義事件相容處理物件事件物件
- SlidingMenu事件處理流程事件
- C#事件處理機制C#事件
- struts 怎樣做事件處理事件