Снегопат

Обсуждение Снегопата
Текущее время: 16 май 2024, 00:28

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 14:14 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
(0) Цитата из Вики: "4. реализовать класс. Его публичные методы без параметров и возвращающие void, станут макросами."
Саша реализовал возможность для макроса возвращать значение.
Будешь у себя в загрузчике добавлять эту фичу?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 14:21 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2011, 08:20
Сообщения: 98
artbear писал(а):
ИМХО вам поможет событие beforeExitApp. в нем снимайте обработчики
Правда, нужно продумать, что делать, если вы снимите обработчики, а какой-то другой аддин откажется выходить, Конфигуратор будет работать, но без ваших обработчиков :)
правда, это наверняка будет очень редко и перезапуск Конфигуратора поможет.


пока помогает только "пристрел" :) конфигуратора через диспетчер задач.

2steban:

с onUnLoadAddin понятно - это я пропустил.
не совсем понятно почему нельзя снять обработчик в событии onExitApp

типа как то так

Код:
designer.onExitApp += delegate() {  designer.onIdle -= OnIdleHandler;   };


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 15:03 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
lustin писал(а):
с onUnLoadAddin понятно - это я пропустил.
не совсем понятно почему нельзя снять обработчик в событии onExitApp
Код:
designer.onExitApp += delegate() {  designer.onIdle -= OnIdleHandler;   };

ИМХО до этого события выполнение не доходит, Снегопат обрубает раньше :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 15:39 
Не в сети

Зарегистрирован: 24 авг 2011, 15:22
Сообщения: 23
artbear писал(а):
Код:
designer.onExitApp += delegate() {  designer.onIdle -= OnIdleHandler;   };

ИМХО до этого события выполнение не доходит, Снегопат обрубает раньше :(


Доходит. Только обработчик onExitApp остается :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 15:50 
Не в сети
Аватара пользователя

Зарегистрирован: 28 авг 2011, 08:20
Сообщения: 98
steban писал(а):
artbear писал(а):
Код:
designer.onExitApp += delegate() {  designer.onIdle -= OnIdleHandler;   };

ИМХО до этого события выполнение не доходит, Снегопат обрубает раньше :(


Доходит. Только обработчик onExitApp остается :)


:) прикольно, я и по другому попробовал - тоже не взлетело

Код:
designer.onIdle += OnIdleHandler;
designer.onExitApp += OnExitApp;

...

// events
void OnIdleHandler()
{
 say("I am on Idle - i have invoked by designer");
}
      
void OnExitApp()
{
 designer.onIdle -= OnIdleHandler;
 designer.onExitApp -=OnExitApp;
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 17:00 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Ребят, не парьтесь пока с событиями.
Модель событий будет переделываться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 17:02 
Не в сети

Зарегистрирован: 24 авг 2011, 15:22
Сообщения: 23
обновил скрипт
теперь можно делать так:
Код:
   public class MyClass : ClrAddinBase
   {
      public override void Init()
      {
         designer.onIdle += onIdle;
      }
      public override void Done()
      {
         designer.onIdle -= onIdle;
      }
      private void onIdle()
      {
         designer.Message("Test on idle", MessageMarkers.mNone);
      }
   }


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 17:09 
Не в сети

Зарегистрирован: 24 авг 2011, 15:22
Сообщения: 23
orefkov писал(а):
Ребят, не парьтесь пока с событиями.
Модель событий будет переделываться

переделаем на новую модель, когда будет ;)

Тут еще концептуальные вопросы всплывают. Например "как правильно выгрузить аддин". В интерфейс IAddinInit просится метод Done, чтобы аддин имел возможность подчищать за собой. Загрузчик может и не уметь этого делать и при вызове IAddinLoader.unload просто делегировать это самому аддину.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 30 авг 2011, 23:40 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
steban писал(а):
orefkov писал(а):
Ребят, не парьтесь пока с событиями.
Модель событий будет переделываться

переделаем на новую модель, когда будет ;)

Тут еще концептуальные вопросы всплывают. Например "как правильно выгрузить аддин". В интерфейс IAddinInit просится метод Done, чтобы аддин имел возможность подчищать за собой. Загрузчик может и не уметь этого делать и при вызове IAddinLoader.unload просто делегировать это самому аддину.

Да, метод сам собой просится.
Я думаю, как это еще для скриптов сделать.
Потому что стал делать новую модель событий, и что-то пока не идет момент с перезагрузкой скриптов - в нынешней модели при выгрузке скрипта его движок сам отвязывается от событий, а если привязываться вручную, то непонятно, как отвязываться при выгрузке - никаких деструкторов нет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Addin-ы на .NET
СообщениеДобавлено: 31 авг 2011, 09:11 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
artbear писал(а):
(0) Цитата из Вики: "4. реализовать класс. Его публичные методы без параметров и возвращающие void, станут макросами."
Саша реализовал возможность для макроса возвращать значение.
Будешь у себя в загрузчике добавлять эту фичу?

Пропустил? Ответишь?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 56 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB