![]() |
#141 |
Участник
|
Цитата:
Цитата:
Плагин — это класс, у которого есть свойство Tabax и название которого начинается на TabaxPlugin_
![]() |
|
![]() |
#142 |
Участник
|
Но тогда с Табаксом пришлось бы параллельно распространять класс базовый. Чего и хочется избежать
Цитата:
Сообщение от belugin
Требования
Tabax должен состоянть из одной формы и больше из ничего |
|
![]() |
#143 |
Участник
|
И еще где-то кешировать найденные плагины т.к. насколько я помню по игрищам с документооборотом extendedBy() довольно медленная штуковина
|
|
![]() |
#144 |
Участник
|
Цитата:
Imho по-любому дожен быть 1) формализованный интерфейс для плагина с поддержкой версионности; 2) формализованный интерфейс для Табакса и его сервисных функций, предоставляемых плагину, с поддержкой версионности. Посмотрите на Far Manager plugin API, посмотрите на Winamp plugin API, посмотрите на COM-интерфейсы, в конце концов... |
|
![]() |
#145 |
Участник
|
|
|
![]() |
#146 |
Участник
|
Цитата:
Пока в аксапте нет пакетов, внутренних классов или делегатов я постараюсь сделать чтобы табакс было сложно случайно испортить и чтобы он занимал поменьше визуального пространства в АОТ. Я в курсе насчет плагинов в фаре, эклипсе, Trac и ... У аксапты свои ограничения, свои традиции и своя область использования и стоит это учитывать. |
|
![]() |
#147 |
Участник
|
И это пишет человек, говоривший мне об абстрактных классах и интерфейсах!
![]() Цитата:
Пока в аксапте нет пакетов, внутренних классов или делегатов я постараюсь сделать чтобы табакс было сложно случайно испортить и чтобы он занимал поменьше визуального пространства в АОТ.
Цитата:
У аксапты свои ограничения, свои традиции и своя область использования и стоит это учитывать.
![]() ![]() ![]() |
|
![]() |
#148 |
Участник
|
Как типичный случай рассматривается когда табакс стоит без плагинов. Для этой ситуации все оптимизируется. Табакс должен состоять из одной части: собственно форма чтобы можно было легко поставить и снести и сложно снести частично.
Специфика состоит в том, что в отличие от фара табакс стоит внутри приложения, которое используется и разрабатывается многими людьми. Представь себе что куча людей вставит сносит плагины в твой фар, при этом в папке плагинов нельзя делать подпапки - какая вероятность, что во первых, кто то снесет полплагина; во-вторых, кто-то увидит что в папке стало очень много файлов и прицепится к тебе чтоб тыэто снес? В-общем хочется чтобы табакс был маленькой утилитой, которая легко ставится и сносится. PS Кроме статических языков есть еще динамические языки в которых вообще нет контроля типов при компиляции и многие считают чтоэто хорошо PPS Правда другие считают что это type inferrence для бедных |
|
![]() |
#149 |
Участник
|
Цитата:
![]() А лучшей иллюстрацией для авторов плагинов к Tabax было бы вынесение в плагины части его функций... Цитата:
Табакс должен состоять из одной части: собственно форма чтобы можно было легко поставить и снести и сложно снести частично.
Цитата:
Специфика состоит в том, что в отличие от фара табакс стоит внутри приложения, которое используется и разрабатывается многими людьми. Представь себе что куча людей вставит сносит плагины в твой фар, при этом в папке плагинов нельзя делать подпапки - какая вероятность, что во первых, кто то снесет полплагина
![]() Цитата:
во-вторых, кто-то увидит что в папке стало очень много файлов и прицепится к тебе чтоб ты это снес?
![]() Цитата:
В-общем хочется чтобы табакс был маленькой утилитой, которая легко ставится и сносится.
Цитата:
Кроме статических языков есть еще динамические языки в которых вообще нет контроля типов при компиляции
![]() |
|
![]() |
#150 |
Участник
|
|
|
![]() |
#151 |
Участник
|
Я свои аргументы изложил, агрументы gl00mie мне понятны, но кажутся менее сущетвенными
|
|
![]() |
#152 |
Участник
|
Цитата:
X++: class test { } void test1(int _a) {; info(int2str(_a)); } void test2() {; this.test1('Гадость'); } |
|
![]() |
#153 |
Участник
|
|
|
![]() |
#154 |
Участник
|
Можно попрбовать сделать чтобы и овцы сыты и и волки целы. см раздел SDK:
http://erpkb.com/Axapta/Tabax/Plaginy |
|
![]() |
#155 |
Участник
|
Цитата:
![]() X++: class TabaxPlugin_CopyWindowHwnd { Object tabax; int action; Hwnd hwnd; Object tabax(Object _value=tabax) { tabax=_value; if (!prmIsDefault(tabax) && tabax) { tabax.subscribe(methodStr(TabaxPlugin_CopyWindowHwnd, BeforeWindowContextMenu), this); tabax.subscribe(methodStr(TabaxPlugin_CopyWindowHwnd, AfterWindowContextMenu), this); } return tabax; } // ... } ![]() |
|
![]() |
#156 |
Участник
|
|
|
![]() |
#157 |
Участник
|
|
|
![]() |
#158 |
Участник
|
Первый реальный плагин на основе нового SDK
Плагин - открывает объект в АОТ
(функционал взят из http://www.axaptapedia.com/Editor_scripts_OpenInAOT) Для использования в поле для ввода пишем, к примеру X++: go InventTable |
|
![]() |
#159 |
Участник
|
Может кто-нибудь проверить на медленной машине, тормозит ли
X++: static void Job25(Args _args) { SysDictClass plug = new SysDictClass(classNum(TabaxPluginBase)); ; info(int2str(plug.extendedBy().elements())); } |
|
![]() |
#160 |
Участник
|
Цитата:
Этот - ну, секунды 4 выполнялся, хотя машинка моя не такая уж и медленная. |
|
|
За это сообщение автора поблагодарили: belugin (15). |
Теги |
tabax, taskbar, toolbar, инструменты, панель задач, панель инструментов, полезное, табакс, тулбар, управление окнами |
|
|