Страница 1 из 1
Вопрос по наследованию интерфейсов
Добавлено: 28 янв 2019, 18:09
Buddy
Есть интерфейс APLPOR, унаследованный от PLPOR:
APlPor.vih:
Код: Выделить всё
VipInterface APlPor(F_PlPor::PlPor)
Licensed (#include PlPor.lih )
parameters
(
lPlPorMarker:longint
);
В стандартном PlPor есть метод PrintPlatDocs, который необходимо видоизменить.
Как правильно объявить в APlPor.vih и APlPor.vip, что я хочу заменить PrintPlatDocs своей реализацией?
P.S. Документацию читал, но помогло не сильно )
Re: Вопрос по наследованию интерфейсов
Добавлено: 29 янв 2019, 00:21
Den
Если PrintPlatDocs не Public, то никак.
т.е. ,в унаследованном от предка стандартного своем фейсе перекрыть локальную функцию никак - если её вызов есть в коде родителя.
В Alter можно overload ее сделать. Но у вас именно чистый наследник.
Если только описать функцию по сути ту же самую и с другим именем и дергать ее откуда нужно . Но тоже, конечно, может быть не все так просто
Re: Вопрос по наследованию интерфейсов
Добавлено: 30 янв 2019, 13:23
edward_K
Если все таки есть выпущенная наружу
Код: Выделить всё
//-------------------------------------
ObjInterface Interface_BASE;
//-------------------------------------
#doc
Защитить данные
#end
Procedure SetEditMode(Value: boolean);
end;
то перекрытие так
Код: Выделить всё
VipInterface Interface_Child(Interface_Base) #Licensed_Free;
Public:
Constructor Init;
Destructor Done;
Procedure oInterface_Base.SetEditMode(Value: boolean);
end;
Inherited доступен.
Иначе да - объявляете свою функцию, и в ней юзаете стандартную.
Если нет, то можно попробовать объявить как (вроде катит так - но не понмю)
Procedure SetEditMode(Value: boolean);
но вам придется полностью ее переписывать.
С событиями в наследнике попроще.
Иногда я делаю Alter, потом наследника - в одном проекте и соблюдая последовательность компиляции - так тоже работаетю
Вообще часто в наследнике у меня остаются лишь доплнительные параметры вызова(сами переменные я задаю в Alter) ну или какие то дополнительньые функции, необходимые для выпуска наружу - так проще.
Re: Вопрос по наследованию интерфейсов
Добавлено: 30 янв 2019, 14:03
Buddy
Коллеги, спасибо, проблема решена.