![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Обход ограничений Delphi 5: преобразование указателя интерфейса в указатель на реализующий классDelphi , Программа и Интерфейс , ИнтерфейсВопрос, заданный разработчиком в Delphi 5, заключается в необходимости преобразования указателя интерфейса в указатель на реализующий класс. Это требуется для доступа к новым свойствам, которые были добавлены в реализующий класс, но не затрагивали сам интерфейс по историческим причинам. Возможное дублирование вопроса:Как преобразовать интерфейс в объект в Delphi Проблема:Используя Delphi 5, у разработчика есть интерфейс, который он не может изменить по причинам совместимости с предыдущими версиями. Указатели на этот интерфейс передаются по всему проекту. Реализующий класс содержит несколько новых свойств, и возникает вопрос: возможно ли как-то преобразовать указатель интерфейса в указатель на реализующий класс? Решение:Согласно информации с сайта Malcolm Groves, такая возможность появилась в Delphi 2010. Однако, для Delphi 5 существует альтернативный способ решения проблемы: использование библиотеки JEDI, в частности метода Альтернативный способ:Разработчик может реализовать у объекта интерфейс
Обновление:Для подчеркивания важности, можно добавить новый интерфейс к уже существующему объекту. Например, если у нас есть класс
Обычное использование:
Подтвержденный ответ:Существуют классические и более новые подходы к решению данной проблемы. Классический подход предложен Hallvard Vassbotn, а более новый - Barry Kelly. Оба подхода должны быть работоспособными. Вывод:Для разработчиков, использующих Delphi 5 и сталкивающихся с необходимостью преобразования интерфейса в реализующий класс, рекомендуется использовать методы, предоставляемые библиотекой JEDI или реализовать у объекта интерфейс Вопрос связан с необходимостью преобразования указателя интерфейса в указатель на реализующий класс в среде разработки Delphi 5, чтобы получить доступ к новым свойствам, не затрагивающим сам интерфейс. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |