Alter ObjInterface

Программирование на Atlantis: приемы и подходы, обмен опытом

Модераторы: larin, Screw

shaidarov
корпорация
Сообщения: 18
Зарегистрирован: Вт, 29/07/2008 16:09
Имя Фамилия: Шайдаров Игорь
Откуда: ТопСофт
Контактная информация:

Alter ObjInterface

Сообщение shaidarov » Пн, 24/09/2012 10:45

Подскажите, пожалуйста, как при помощи Alter перекрыть функции Интерфейса, описанные в ObjInterface?

Для примера: надо перекрыть функцию SetPosition, описанную следующим образом:

файл ListSoglDog.vih:

Код: Выделить всё

ObjInterface ListSoglDogObj;
  Function SetPosition(aDogovor: comp; aCanModifyDog: boolean): boolean;
end;

VipInterface ListSoglDog implements ListSoglDogObj licensed(FREE) Parameters(pDogovor: comp; CanModifyDog: boolean);

файл ListSoglDog.vip:

Код: Выделить всё

#include ListSoglDog.vih
#include ExtAttr.vih
#include GetKau.vih

Interface ListSoglDog 'Лист согласования' (, hcDogEditDogovor, ) EscClose;
...
Function SetPosition(aDogovor: comp; aCanModifyDog: boolean): boolean;
{
  set pDogovor := aDogovor;
  CanModifyDog := aCanModifyDog;
  Result := GetFirst Dogovor = tsOk;
  RereadRecord(#AttrDog);
  if not CheckAttrsLS
    {
      Result := FALSE;
      if not CanModifyDog
        Message('Лист согласования отсутствует!', Information);
    }

  GetAttrsLS;
  SetFieldProtected(#LS_NoReestr  , not CanModifyDog);
}
...

Ged
корпорация
Сообщения: 76
Зарегистрирован: Вс, 16/09/2007 10:23
Имя Фамилия: Леонид Поликутин
Откуда: Галактика СПб
Контактная информация:

Re: Alter ObjInterface

Сообщение Ged » Пн, 24/09/2012 13:19

Код: Выделить всё

Alter Interface ListSoglDog ;
  overload
    Function ListSoglDogObj.SetPosition(aDogovor: comp; aCanModifyDog: boolean): boolean;
  end;

Function ListSoglDogObj.SetPosition(aDogovor: comp; aCanModifyDog: boolean): boolean;
{

  if(inherited :: SetPosition(aDogovor,aCanModifyDog)
   {
        // Наш код
   }
}

end.

shaidarov
корпорация
Сообщения: 18
Зарегистрирован: Вт, 29/07/2008 16:09
Имя Фамилия: Шайдаров Игорь
Откуда: ТопСофт
Контактная информация:

Re: Alter ObjInterface

Сообщение shaidarov » Пн, 24/09/2012 13:37

Ged, большое спасибо за быстрый и содержательный ответ 8-)


Вернуться в «Программирование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя