TWebBrowser, похоже, не имеет события OnKeydown, а также имеет много других проблем.Я обычно забываю об этом и захожу на TEmbeddedWB (пакет компонентов встроенного веб-браузера), и он обладает улучшенными функциями.
Я написал некоторый код, чтобы попытаться определить, находимся ли мы в элементе редактирования,и только условно блокировать клавиши возврата, поскольку, как говорит Пактас, простое блокирование события OnKey приведет к прерыванию редактирования в
формах веб-страниц, используя TEmbeddedWB, код выглядит следующим образом:
procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
element: IHTMLElement;
elementTagName: String;
begin
// form contains field: EmbeddedWB1: TEmbeddedWB which is an improved version of TWebBrowser.
element := EmbeddedWB1.GetActiveElement;
if Assigned( element ) then
begin
elementTagName := element.tagName;
end;
if ( not SameText( elementTagName, 'INPUT' ) )
and ( not SameText( elementTagName, 'TEXTAREA' ) ) then
if ((Key= VK_LEFT) and (Shift = [ssAlt]))
or ((Key= VK_RIGHT) and (Shift = [ssAlt]))
or (Key= VK_BROWSER_BACK)
or (Key= VK_BROWSER_FORWARD)
or(Key = VK_BACK) then
begin
Key := 0; { block backspace, but not in INPUT or TEXTAREA. }
Exit;
end;
end;