Есть ли способ сообщить, что содержимое изменилось с помощью TWebBrowser в режиме DesignMode?

Если TWebBrowser помещен в режим DesignMode (HTMLDocument2.designMode := 'On';), есть ли способ обнаружить изменения в документе, когда пользователь вводит данные в элемент управления, аналогично событию OnChange стандартных клавиш управления, таких как TEdit/TMemo?

Спасибо


person RaelB    schedule 13.05.2012    source источник


Ответы (1)


Этого довольно просто добиться, если вы внедрите интерфейс IHTMLEditDesigner и подключите его к веб-браузеру (вы сможете найти ресурсы о том, как это сделать в Интернете).

Затем ключевой частью является использование PreHandleEvent:

function TWebBrowserFrame.PreHandleEvent(inEvtDispId: Integer;
  const pIEventObj: IHTMLEventObj): HResult;
begin
  Result := S_FALSE;
  If inEvtDispId = DISPID_EVMETH_ONKEYDOWN Then
      ...
  if pIEventObj.keyCode = ... etc...
end;

На этой странице была полезная информация: (откуда берутся константы DISPID...) http://www.codeproject.com/Articles/6546/Using-IHTMLEditDesigner

person RaelB    schedule 13.05.2012