- Сколько на свете дураков есть - ума не приложу!
- Что случилось?
- Да сказал я вчера одному "сходи на сайт".
- И?
- Так после него компьютер сушить пришлось!
// Show the "Properties Dialog" // Den Eigenschaften Dialog anzeigen procedure TForm1.Button1Click(Sender: TObject);
var
eQuery: OLECMDF;
vaIn, vaOut: OleVariant;
begintry
eQuery := Webbrowser1.QueryStatusWB(OLECMDID_PROPERTIES);
if (eQuery and OLECMDF_ENABLED) = OLECMDF_ENABLED then
Webbrowser1.ExecWB(OLECMDID_PROPERTIES, OLECMDEXECOPT_PROMPTUSER, vaIn, vaOut);
exceptend;
end;
Код-сниппет, предоставленный ниже, является частью программы Delphi, которая использует компонент TWebBrowser для взаимодействия с веб-страницами. Процедура Button1Click вызывается при клике кнопки на форме.
Вот что код делает:
Он пытается выполнить команду "Properties Dialog" на контроле Webbrowser.
Если статус запроса для этой команды разрешен (т.е., OLECMDF_Enabled), он выполняет диалог свойств у пользователя.
Переменные vaIn и vaOut - это OleVariants, которые используются для передачи параметров методу ExecWB.
Код не обрабатывает исключения должным образом. Если возникает ошибка при выполнении метода ExecWB, программа будет завершаться без отображения любого сообщения об ошибке или обработки исключения в любом виде. Для улучшения надежности и устойчивости программы вам нужно добавить код обработки ошибок.
Вот как это сделать:
procedureTForm1.Button1Click(Sender:TObject);vareQuery:OLECMDF;vaIn,vaOut:OleVariant;begintryeQuery:=Webbrowser1.QueryStatusWB(OLECMDID_PROPERTIES);if(eQueryandOLECMDF_ENABLED)=OLECMDF_ENABLEDthenWebbrowser1.ExecWB(OLECMDID_PROPERTIES,OLECMDEXECOPT_PROMPTUSER,vaIn,vaOut);exceptonE:ExceptiondoMessageDlg('Ошибка при выполнении команды Properties Dialog.',mtError,[mbOK],0);end;end;
Этот код отображает диалог сообщения об ошибке с текстом "Ошибка при выполнении команды Properties Dialog." если возникает любая ошибка при выполнении метода ExecWB.
В статье описывается использование события QueryStatusWB для отображения диалога свойств в компоненте TWebBrowser при помощи метода ExecWB.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS