При использовании TWebBrowser в своих проектах иногда требуется программно обновить данные текущей страницы. На первый взгляд это сделать просто, используя метод Refresh. Однако если текущая страница содержит формы с введенными пользователем или программно данными, то при выполнении метода Refresh мы получаем системное сообщение, которое показано в заголовке этой заметки. В результате мы получаем проблему в том случае, если нам это сообщение мешает программировать TWebBrowser.
Решение этой проблемы оказалось довольно простым, но не совсем очевидным. Информацию в Google по этому поводу найти не удалось применительно к
Delphi, но такая информация отыскалась применительно к
С#. Дело в том, что у
TWebBrowser есть метод
Refresh2, для которого можно задать необязательный параметр
WebBrowserRefreshOption, который может принимать следующие значения (из кода на C#):
В нашем случае интересно значение
Continue, его и необходимо использовать. В Delphi параметр для метода
TWebBrowser.Refresh2 имеет тип
OleVariant, поэтому поступаем таким образом:
...
var Opt: OleVariant;
begin
Opt:=2;
Browser.Refresh2(Opt);
end;
В результате никаких системных сообщений при обновлении страницы мы не получаем.
Смотрите также:
Оставьте свой комментарий
Вы должны быть авторизированны, чтобы оставить комментарий.