Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как избавится от ненужных функций в интерфейсе? 
V
    Опции темы
Rohoss
Дата 22.2.2009, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: 4
Всего: 18



Вот код интерфейса
Код

  IMyInterface = interface
    function GetP1: Integer;
    procedure SetP1(Val: Integer);
    property P1: Integer read GetP1 write SetP1;
  end;

В нём мне нужно только свойство P1, а GetP1 и SetP1 мне не нужны. В классе, реализующем данный интерфейс, я подберу свойству нужные методы, а в интерфейсе они лишнее. Только вот не получается оставить само свойство… Можно это как-то сделать?


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
SneG0K
Дата 22.2.2009, 01:20 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 1
Всего: 54



Тоесть ты хочешь удалить это свойства из интерфейса?
Интерфейс - это COM обьект, состоящий из кучи DLL-ок. так, что я думаю, прийдется перекомпилировать интерфейс.
PM WWW Skype   Вверх
Rohoss
Дата 22.2.2009, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: 4
Всего: 18



Цитата(SneG0K @  22.2.2009,  01:20 Найти цитируемый пост)
Тоесть ты хочешь удалить это свойства из интерфейса?

Нет, я свойство как раз хочу оставить, только хочу назначить ему Get и Set функции непосредственно в классе, реализующем этот интерфейс.

Цитата(SneG0K @  22.2.2009,  01:20 Найти цитируемый пост)
Интерфейс - это COM обьект, состоящий из кучи DLL-ок. так, что я думаю, прийдется перекомпилировать интерфейс.

Не всегда интерфейс является ком объектом и находится в dll


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
SneG0K
Дата 22.2.2009, 01:28 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 1
Всего: 54



Цитата(Rohoss @  22.2.2009,  00:24 Найти цитируемый пост)
ет, я свойство как раз хочу оставить, только хочу назначить ему Get и Set функции непосредственно в классе, реализующем этот интерфейс.

Ну так в чем проблема? 
Цитата(Rohoss @  22.2.2009,  00:17 Найти цитируемый пост)
    function GetP1: Integer;
    procedure SetP1(Val: Integer);

Добавляеш в секцию private, а в public реализируеш нужные методы.

Добавлено позже
Цитата(Rohoss @  22.2.2009,  00:24 Найти цитируемый пост)
ет, я свойство как раз хочу оставить, только хочу назначить ему Get и Set функции непосредственно в классе, реализующем этот интерфейс.

Ну так в чем проблема? 
Цитата(Rohoss @  22.2.2009,  00:17 Найти цитируемый пост)
    function GetP1: Integer;
    procedure SetP1(Val: Integer);

Добавляеш в секцию private, а в public реализируеш нужные методы.
PM WWW Skype   Вверх
Rohoss
Дата 22.2.2009, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: 4
Всего: 18



Цитата(SneG0K @  22.2.2009,  01:28 Найти цитируемый пост)
Добавляеш в секцию private, а в public реализируеш нужные методы.

Так нельзя в интерфейсе использовать эти секции…


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
CodeMonkey
Дата 22.2.2009, 04:49 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Эх, до чего дошёл прогресс :((

Товарищ Rohoss, в интерфейсах не бывает свойств, видимости, полей данных и прочей атрибутики класса. В интерфейсах есть только методы. Точка.
Это Delphi вам упрощает жизнь, позволяя указать, что, дескать, вот эту пару двух методов считать свойством (при этом геттер и сеттер исчезают из подсказок Error Insight). Да ещё плюс при реализации можете тыкать:

Код
type
  TImpl = class(TObject, IMyInterface)
  private
    ...
    procedure SetP666(Val: Integer);
    procedure IMyInterface.SetP1 = SetP666;
  end;




--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Rohoss
Дата 22.2.2009, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Начальник интернета
***


Профиль
Группа: Завсегдатай
Сообщений: 1308
Регистрация: 9.10.2006
Где: Matrix

Репутация: 4
Всего: 18



Цитата(CodeMonkey @  22.2.2009,  04:49 Найти цитируемый пост)
Эх, до чего дошёл прогресс :((

CodeMonkey, а мы вот такие наглые, нам уже и инкапсуляцию в интерфейсах подавай  smile 
Знач никак.  smile 


--------------------
Файловый менеджер Explorer.Net скачать  video
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.