anchor.diff:      procedure WMUser_ContentRender(var Message: TMessage); message WM_USER_ContentRender;
       procedure DoNavigate;
     protected
  -    function ShouldProcessAllCommands: Boolean; override;
       procedure FireCommand(const command: WideString; params: TStringList); override;
   
     public
  
positive.code: begin
    FKeyboardName := Value;
    DoNavigate;
  end;
  
  function TfrmKeyboardOptions.ShouldProcessAllCommands: Boolean;
  begin
    Result := True;
  end;
  
  procedure TfrmKeyboardOptions.webBeforeNavigate2(ASender: TObject;
    const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
    Headers: OleVariant; var Cancel: WordBool);
  begin
    if Pos('options.htm', URL) > 0 then Exit
    else inherited;
  end;
  
  procedure TfrmKeyboardOptions.webNewWindow3(ASender: TObject;
    var ppDisp: IDispatch; var Cancel: WordBool; dwFlags: Cardinal;
    const bstrUrlContext, bstrUrl: WideString);
  begin
    if Pos('options.htm', string(bstrURL)) > 0 then
    begin
      Cancel := True;
    end
    else inherited;
  end;
  
  procedure TfrmKeyboardOptions.DoNavigate;
  
negative.code:   s := ExtractFilePath(kbd.OwnerPackage.Filename) + 'options.htm' + s;
  
    cef.Navigate(s);
  end;
  
  procedure TfrmKeyboardOptions.WMUser_ContentRender(var Message: TMessage);
  