По умолчанию TWebBrowser для Firemonkey не делает это изначально с 10.3 Rio.Если вы не используете другой компонент браузера, лучше всего использовать Javascript.Если вы контролируете контент, который обслуживается, это довольно просто.См. Как отключить щелчок правой кнопкой мыши на моей веб-странице?
Если вы работаете с другим веб-сайтом, контент которого не контролируется, вы можете попробовать добавить Javascript с помощью TWebBrowser.EvaluateJavaScript ()
procedure TForm1.DisableRC;
var
strJS: string;
begin
strJS := 'document.addEventListener("contextmenu", function(e){ e.preventDefault();}, false);';
webbrowser1.EvaluateJavaScript(strJS);
end;
Код работает, если вы вызываете DisableRC;Скажем, нажатием кнопки.Но если URL-адрес перезагружается или содержимое меняется, вам нужно будет вызвать его снова.
Я попытался выполнить вызов DisableRC () в событии TWebBrowser.OnDidFinishLoad, чтобы выполнить его после завершения навигации по странице, но событиев конечном итоге выстрелил тысячи раз в бесконечном цикле.Использование TThread.Queue не имеет значения.Возможно, это связано с тем, что при оценке Javascript событие снова запускается.
В результате работало размещение TTimer в форме, отключенной по умолчанию, со следующим кодом в OnTimer:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
DisableRC;
Timer1.Enabled := false;
end;
И затем включение таймера в событии TWebBrowser.OnDidFinishLoad.
Это что-то вроде хака, но, надеюсь, полезно начать работу в своей реализации.