2016-08-03 7 views
3

Начиная с Delphi 10.0 Сиэтл, Embarcadero изменил реализацию TWebBrowser управления:Обновленный TWebBrowser теперь реализует IDocUIHandler с самого начала, как я могу продолжать использовать свою пользовательскую реализацию?

Pre-Сиэтл: TWebBrowser = class(TOleControl)

Сиэтл +: TWebBrowser = class(TOleControl, IDocHostUIHandler, IDocHostShowUI, IOleCommandTarget)

У меня есть несколько старый код работает, где я реализовал класс который мог бы зарегистрироваться как клиентский сайт/хост для TWebBrowser, где я представил свою собственную реализацию интерфейса IDocHostUIHandler.

Поскольку TWebBrowser теперь реализует их с самого начала (и сохраняет их в тайне) и трудно спуститься из-за всех, что я знаю - как я собираюсь получить новый компонент TWebBrowser, чтобы перерегистрировать, где найти реализация для IDocHostUIHandler?

+0

Не было бы проще использовать более раннюю версию ShDocVw.Pas или просто создать свой собственный блок импорта для веб-браузера? Вам не нужно использовать поставляемый Delphi. – MartynA

ответ

6

Вы можете спуститься с TWebBrowser и предоставить свои собственные определения интерфейсов, как и прежде, как это:

Type 
    TMyWebBrower = class(TWebBrowser, IDocHostUIHandler) 
    ... 
    end; 

Это говорит Delphi, что вы переопределение интерфейса IDocHostUIHandler. Вы должны предоставить все функции для интерфейса, но у вас уже есть это.

+0

Это решение, с которым я согласился, и он действительно работает! – nelshh

 Смежные вопросы

  • Нет связанных вопросов^_^