Страница 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
Коллеги, спасибо, проблема решена.