anchor.diff:    Close;
   
     kmcom.Apply; // I1338 - eliminate unneccesary re-render
  -end;
  -
  -procedure TfrmMain.InitNonVisualComponents;
  -begin
  -  dlgOpenAddin := TOpenDialog.Create(Self);
  -  dlgOpenAddin.Filter :=
  -      'Keyman add-ins (*.kma, *.kmp)|*.kma;*.kmp|Keyman add-in files (*' +
  -      '.kma)|*.kma|Keyman packaged add-ins (*.kmp)|*.kmp|All files (*.*' +
  -      ')|*.*';
  -  dlgOpenAddin.Title := 'Install Add-in';
  -
  -  dlgOpenVisualKeyboard := TOpenDialog.Create(Self);
  -  dlgOpenVisualKeyboard.Filter := 'On screen keyboard files (*.kvk)|*.kvk|All files (*.*)|*.*';
  -  dlgOpenVisualKeyboard.Title := 'Install Keyman Keyboard';
  -  dlgOpenVisualKeyboard.OnCanClose := dlgOpenVisualKeyboardCanClose;
   end;
   
   {-------------------------------------------------------------------------------
  
positive.code:   else if command = 'keyboard_uninstall' then Keyboard_Uninstall(params)
    else if command = 'keyboard_options' then Keyboard_Options(params)
    else if command = 'keyboard_clickcheck' then Keyboard_ClickCheck(params)
    else if command = 'keyboard_installvisualkeyboard' then Keyboard_InstallVisualKeyboard(params)
    else if command = 'keyboard_uninstallvisualkeyboard' then Keyboard_UninstallVisualKeyboard(params)
  
    else if command = 'keyboardlanguage_install' then KeyboardLanguage_Install(params)   // I3624
    else if command = 'keyboardlanguage_uninstall' then KeyboardLanguage_Uninstall(params)   // I3624
  
negative.code:     kbd.Loaded := StrToBool(params.Values['value']); //, 'true');
  end;
  
  procedure TfrmMain.Keyboard_Options(Params: TStringList);
  var
    kbd: IKeymanKeyboardInstalled;
  