Добрый день. Может кто сталкивался с такой проблемой или знает как ее решить:
Делаю интерфейс, имплиментурую объектную процедуру. Потом делаю другой интерфейс, наследуемый от первого. И хочу заместить процедуру. При компиляции выдает ошибку " Повторная реализация метода"
var oM : ObjInter;
if (Trim(sInt) = '')
{
if NullVipRef(oM)
LoadVipRef(oM, 'iInt1');
}
else
if NullVipRef(oM)
LoadVipRef(oM, 'iInt2');
oM.doSome(pDogovor);
" Когда есть желание перекрыть реализацию унаследованной функции, в описании интерфейса нужно описать перекрываемую функцию" (с)
Видимо, ее для VipInterface iInt2 нужно объявить как Public.
Den писал(а):Видимо, ее для VipInterface iInt2 нужно объявить как Public.
Уже так делал. Делал и по другому описывал ее и в iInt1 а так же вместе в iInt1 и iInt2 все равно возникала одна и тажа ошибка
Ошибка: метод doSome есть у нескольких объектных интерфейсов.
Interface iInt2;
public procedure doSome(pRec : comp);
{
message('iInt2.doSome'); // здесь возникает ошибка "Повторная реализация метода ObjInter.doSome"
}
end.
Den писал(а):мутновато как то все...но получилось собрать только без описания явно ObjInterface
Да так будет работать, но не совсем то что мне нужно.
Тут получаются интерфейсные переменные. Я чутка не так написал для упрощения вопроса, но суть в том что бы в объектную переменную загружать динамически ссылку на интерфейс: