ZETZET wrote:
Согласен. Но добавлю, что его можно наращивать. Делфи славится своим наследованием. В том числе и интерфесов.
Хе-хе, именно по этому пути я пошёл при написании плагина-переходника
Thunk. И даже написал два тестовых плагина, каждый из которых регистрировал свою собственную команду и пытался выполнить команду, зарегистрированную другим.
Отлично работает, между прочим.
Если бы был обмен между плагинами (сделать-то его не легко, ОЧЕНЬ легко), то все плагины расслоились бы на операционные (дополнительные действия на компьютере), интерфейсные (OSD и т.п.) и сервисные (собственно обработка информации о закачках и некая реакция в зависимости от поставленных условий с использованием возможности первых двух классов плагинов). Ярким примером похожего взаимодействия является небезызвестный ICQ-клиент Miranda...
Как пример уже сейчас могу выдать вариант раскладки:
в плагине Rebooter оставить "чиста перезагрузку" и сделать его операционным (ну ленятся разработчики вставить Reboot в API; впрочем, это не единственное, что они ленятся...);
написать операционный плагин AskForm, зашив туда окно подтверждения с таймером а-ля встроенное в DM "Вы хотите выйти?.." (было бы идеально, если бы разработчики дали возможность порулить встроенным через API, но...);
оставить от AutoSwitch ядро управления в виде сервисного плагина.
Я обдумывал возможность реализации этого на базе написанного Thunk. Но где найти столько времени?
Кстати, в плагине ICQ RemoteCP без всяких интерфейсов сделана асинхронная форма настроек, которая при собственном закрытии вызывает интерфейсную функцию EventRaised, подвешенную через обычный указатель, сообщая плагину через собственную команду, что она-де закрылась...
Одним словом, глаза горят и руки чешутся...