Создание интерфейсов с помощью VIP

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Maxx
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ростов-на-Дону
Контактная информация:

Создание интерфейсов с помощью VIP

Сообщение Maxx »

У меня тут такой вопрос:есть ли возможность в VIPе редактировать уже имеющийся интерфейс(используемый в гал-е) и как это сделать?
Vitas
Местный житель
Сообщения: 230
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь

Re: Создание интерфейсов с помощью VIP

Сообщение Vitas »

Есть, если у тебя есть исходники стандартных интерфейсов. :)
В противном случае нет
Ищу возможности довести и так отличный продукт до еще большего блеска
Vitas
Местный житель
Сообщения: 230
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Сибирь

Re: Создание интерфейсов с помощью VIP

Сообщение Vitas »

а хотя что-то еще есть такое типа:
Докомпиляция интерфейсов
Докомпиляция интерфейсов целиком основана на механизме наследования VIP-интерфейсов. Основное отличие состоит в том, что в новом интерфейсе невозможно добавление новых public-функций, разрешается только перегрузка существующих, а также расширение логических таблиц и обработчиков событий.

Для докомпиляции интерфейса необходимо наличие в ресурсе символьной информации (так же как и для наследования ). Однако, запись символьной информации для каждого интерфейса сильно увеличит размер ресурсного файла. Для указания интерфейсов для которых сохранять символьную информацию заведён параметр в CFG файле

Compilers.InhSaveLevel : LongInt;

InhSaveLevel Значение
0 Не сохранять символьную информацию. Дальнейшее наследование и докомпиляция невозможны.
1* Сохранять информацию только для интерфейсов, имеющих прототип, т.е. описаных ранее как VipInterface.
2 Сохранять информацию только для интерфейсов, не имеющих прототипа, т.е. обычные интерфейсы.
3 Сохранять информацию для всех интерфейсов.
* - значение по-умолчанию
Для описания докомпиляции используется следующая конструкция

alter interface <имя_интерфейса>
[ ( [ fix ] <служебная_информация> ) ]
<заголовок> ...

Т.е. к обычному описанию интерфейса добавлен квалификатор alter, а после идентификатора интерфейса - необязательная секция для служебной информации. Ключевое слово fix означает исправление ошибки и смысловой нагрузки не несёт.

Ограничение Докомпиляция интерфейса должна проводится в ресурс, отличный от того, откуда загружается докомпилируемый интерфейс.

В случае, если базовый интерфейс реализовывал какие-либо public-функции, имеется возможность изменить их реализацию. Перегружаемые методы описываются в секции overload, которая должна быть описана сразу после параметров интерфейса. Синтаксис описания такой же, как и при наследовании.

Пример
alter interface vTest ( fix 'исправление грамматической ошибки' ) 'Проверка';
overload
function iTest.Func1 ( var VUglUskR : integer ) : boolean;
end;

function iTest.Func1 ( var VUglUskR : integer ) : boolean;
{
Result := False;
if (inherited :: Func1 (VUglUskR)) then
...
}

HandleEvent
cmValue19: {
...
inherited :: HandleEvent (cmValue18);
...
}
end;
end.
Ищу возможности довести и так отличный продукт до еще большего блеска
Maxx
Новичок
Сообщения: 28
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ростов-на-Дону
Контактная информация:

Re: Создание интерфейсов с помощью VIP

Сообщение Maxx »

Спасибо, Vitas!
Ответить