Это всего лишь половина ответа, но для справок в будущем это то, что я сделал:
Это бокс :-(
Я поместил TEdit в основную форму и установил ее невидимым. Затем я добавил обработчик MainForm, OnClick
который устанавливает логический флаг ловушки, чтобы отслеживать, было ли ранее настроено TWebBrowser.
Для экземпляров THtmlEditor я добавил SetFocus
обработчик, который проверяет флаг trap и делает TEdit видимым, вызывает SetFocus
его, снова скрывает TEdit и возвращает True, чтобы THtmlEditor мог повторно установить фокус на себя. Флаг ловушки должен избегать излишней потери фокуса, если пользователь просто щелкает в THtmlEditor.
Следующим шагом, на который я, возможно, никогда не доберусь, будет отслеживание кода фокуса для TEdit. Мое подозрение в том, что все это связано с тем, ITextInput
что поддерживает TEdit, а THtmlEditor этого не делает.