Архив: Технология создания плагинов

Здесь обсуждаются технические аспекты создания дополнений.
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Технология создания плагинов

Сообщение Cilvay »

Вроде как из привата выходит когда сам себе в приват отправляешь, а когда другому - не выходит
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Технология создания плагинов

Сообщение Cilvay »

Походу не работает выход из привата
И при инициировании событий в привате ставил выход, и задержку писал перед выводом в приват.. все равно не хочет
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: число(иконка)

Сообщение Maxim Mirgorodsky »

Chudik писал(а):
Maxim Mirgorodsky писал(а):Я так понимаю вам необходима возможность удаления обработанных заявок плагином? Это можно реализовать в следующей версии.
Спасибо. И возникающий вопрос, когда ждать следующую версию?
Согласно договоренности по ЛС, в ближайшее время в индивидуальном порядке.
dv писал(а):

Код: Выделить всё

Подключить виртуального пользователя  ID: 1001
Блок данных: текст(имя) + текст(IP-адрес) + число(тип пароля) + текст(пароль) + число(иконка)

Код: Выделить всё

Иконки пользователя:
0 - Мужская
1 - Женская
2 - Неизвестна (офлайн)
Видимо к (серверным) плагинам применимо только 0 и 1 ?
Нет, плагином обрабатывать корректно необходимо и 2.
KGB писал(а):
cilvay писал(а):Кто делал плагин где использовались закрытия приватов? Я вроде сделал правильно а они не закрываются

Код: Выделить всё

aDataToSend :=
fTextToAnsiString(uSenderLogin);
CommFortProcess(dwPluginID, 65, PAnsiChar(aDataToSend), Length(aDataToSend));
Ошибка может быть связана с тем, что закрытие привата нельзя делать сразу после отправки сообщения (вроде бы может получиться, что сообщение будет отправлено позже, чем закрыт приват, и он снова откроется).
Совершенно верно, приват открывается только после получения ответа от сервера. А закрывать его необходимо только после открытия.

Еще обратите внимание, что имя должно полностью соответствовать по регистру.
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Технология создания плагинов

Сообщение ОреЛ »

Не подскажете, с чем это может быть связано:
2 раза включаю-выключаю плагин - всё нормально, 3-ий раз включаю плагин - подвисает сервер
иногда при закрытии сервера вылезает окошко Abnormal program termination с чем это может быть связано?
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Beckham
Сообщения: 22
Зарегистрирован: 13:13, 13.01.2010

Re: Технология создания плагинов

Сообщение Beckham »

Можно ли создать или может уже есть такой плагин, который показывает список пользователей с открытым доступом
Аватара пользователя
dv
Сообщения: 1845
Зарегистрирован: 10:28, 11.05.2007
Откуда: Краснодар

Re: Технология создания плагинов

Сообщение dv »

ОреЛ писал(а):Не подскажете, с чем это может быть связано:
2 раза включаю-выключаю плагин - всё нормально, 3-ий раз включаю плагин - подвисает сервер
иногда при закрытии сервера вылезает окошко Abnormal program termination с чем это может быть связано?
в процедуре PluginStop
cделай .destroy и .free для всего ранее созданного.
Дополнения для CommFort
Адрес чата: chat.telered.ru




.
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Технология создания плагинов

Сообщение ОреЛ »

dv писал(а):в процедуре PluginStop
cделай .destroy и .free для всего ранее созданного.
Если бы понимать, что еще нужно высвобождать, ибо форму я высвобождаю, StringList-ы тоже, IniFile-ы тоже высвобождаю. Может все глобальные переменные напрочь удалять надо?
P.S.: я на с++
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

ОреЛ писал(а):Не подскажете, с чем это может быть связано:
2 раза включаю-выключаю плагин - всё нормально, 3-ий раз включаю плагин - подвисает сервер
иногда при закрытии сервера вылезает окошко Abnormal program termination с чем это может быть связано?
В коде плагина ошибки с памятью.
Beckham писал(а):Можно ли создать или может уже есть такой плагин, который показывает список пользователей с открытым доступом
С открытым доступом к чему?
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Технология создания плагинов

Сообщение Cilvay »

Максим, может проверите событие закрытия приватов? Только не приват самому себе, который прекрасно работает, а приват с двумя разными собеседниками
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

Завтра проверим.

Еще одна возможна причина неудачи - приват открывается автоматически снова если поступило новое сообщение.
Maxim Mirgorodsky
Администратор
Сообщения: 6871
Зарегистрирован: 09:56, 27.06.2005

Re: Технология создания плагинов

Сообщение Maxim Mirgorodsky »

Плагин, который закрывает приват с пользователем Test_user при поступлении любого сообщения (так как приват открывается только в случае поступления приватного сообщения, получается что приват с пользователем Test_user вообще не открывается):
http://www.commfort.com/tmp/plugin_private_close.rar (плагин с исходником).
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Технология создания плагинов

Сообщение ОреЛ »

Maxim Mirgorodsky писал(а):В коде плагина ошибки с памятью.
Это ладно, переделал. Вопрос ко всем:
что нужно сделать, чтобы при закрытии сервера закрывался закрывалась форму? Создается у меня в конструкторе класса как
Form1 = new(Form1);
что нужно прописать в деструкторе, чтобы, когда запущен плагин и открыта форма, при закрытии сервера не вылезала ошибка?
Вложения
1.jpg
(25.33 КБ) 37 скачиваний
2.jpg
(31.82 КБ) 30 скачиваний
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
@serg@
Сообщения: 702
Зарегистрирован: 14:50, 20.07.2009

Re: Технология создания плагинов

Сообщение @serg@ »

При завершении работы сервера вызывается функция PluginStop в ней пропиши код Form1->Free().
Никаких гарантий не даю, но вроде должно помочь.
ОреЛ
Сообщения: 376
Зарегистрирован: 11:18, 11.07.2008
Откуда: Ульяновск
Контактная информация:

Re: Технология создания плагинов

Сообщение ОреЛ »

@serg@ писал(а):При завершении работы сервера вызывается функция PluginStop в ней пропиши код Form1->Free().
Никаких гарантий не даю, но вроде должно помочь.
форма создается в отдельном классе, а при вызове функции PluginStop вызывается деструктор этого класса
и, когда при закрытии (в деструкторе) написано Form1->Free() , то, когда два раза подряд включается-выключается плагин, на 3-ий раз при включении подвисает сервер
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
Cilvay
Сообщения: 816
Зарегистрирован: 14:55, 16.06.2008

Re: Технология создания плагинов

Сообщение Cilvay »

На чем пишешь? на делфи?
В PluginStart пишешь:

Код: Выделить всё

Form1 := TForm1.Create(Application);
Form1.Show;
Теперь внимание на PluginStop

Код: Выделить всё

form1.Close;
form1.Free;
Все. Должно работать сколько угодно и без ошибок.
Кстати если проверять на windows vista, 7 то ошибка будет гораздо подробнее описана, даже будет показан модуль с этой ошибкой
Закрыто