Ну так это же 2 разные функции. Первая функция - это прием сообщений PluginProcess. А вторая это Получение данных от программы - CommFortGetData.cilvay писал(а):И это же самое значитКод: Выделить всё
Подключение к каналу виртуального пользователя ID: 1062 Блок данных: текст(имя виртуального пользователя) + текст(канал) + текст(тема канала) + текст(приветствие канала)
Можете дать какие нить комментарии...Код: Выделить всё
ID компьютера пользователя ID: 1062 Блок данных (исходящий): текст(имя пользователя) Блок данных (входящий): текст(ID компьютера) Если пользователь не зарегистрирован, то вместо ID компьютера во входящий блок данных будет записана пустая строка.
Архив: Технология создания плагинов
Re: Технология создания плагинов
Re: Технология создания плагинов
Так, до меня дошло..
Re: Технология создания плагинов
всё норм, только сложно не запутаться.cilvay писал(а):И это же самое значитКод: Выделить всё
Подключение к каналу виртуального пользователя ID: 1062 Блок данных: текст(имя виртуального пользователя) + текст(канал) + текст(тема канала) + текст(приветствие канала)
Можете дать какие нить комментарии...Код: Выделить всё
ID компьютера пользователя ID: 1062 Блок данных (исходящий): текст(имя пользователя) Блок данных (входящий): текст(ID компьютера) Если пользователь не зарегистрирован, то вместо ID компьютера во входящий блок данных будет записана пустая строка.
Re: Технология создания плагинов
Не получается забанить пользователя
Не работает никак. В чем проблема?
Код: Выделить всё
aDataToSend := fTextToAnsiString(form1.Edit1.text)+ //имя виртуального пользователя
fIntegerToAnsiString(3)+ //тип. По имени пользователя
fTextToAnsiString(uSenderLogin)+ //имя жертвы
fIntegerToAnsiString(0)+//тип. Отрубаем его от сервера
fIntegerToAnsiString(form1.SpinEdit1.Value)+ //срок. Вот тут может косяк, на срок подается обычное число типа integer. к примеру в поле введено значение 7
fTextToAnsiString('текст')+ //причина
fIntegerToAnsiString(1); //тип анонимности
CommFortProcess(dwPluginID, 1040, PAnsiChar(aDataToSend), Length(aDataToSend));
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Нужно использовать DateTime (Double)cilvay писал(а):Не получается забанить пользователяНе работает никак. В чем проблема?Код: Выделить всё
fIntegerToAnsiString(form1.SpinEdit1.Value)+ //срок. Вот тут может косяк, на срок подается обычное число типа integer. к примеру в поле введено значение 7
Re: Технология создания плагинов
Можно подробнее. Надо указывать часы, дни или как?
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
DateTime=Double (8 байт), где время указывается в днях. например, 1.0 - 1 день, а 0.33 - приблизительно 8 часов. Но можно использовать тип TDateTime.cilvay писал(а):Можно подробнее. Надо указывать часы, дни или как?
Re: Технология создания плагинов
Можно пример? Допустим как из числа 1 получить 1.0... И уже в нужном формате) заранее спасибо
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
делфи автоматически приведет тип при присваивании:cilvay писал(а):Можно пример? Допустим как из числа 1 получить 1.0... И уже в нужном формате) заранее спасибо
Код: Выделить всё
var
I: Integer;
D: Double;
begin
I:=1;
D:=I; // D = 1.0
end;
Re: Технология создания плагинов
Спасибо. Но как теперь передать на CommFortProcess тип DOUBLE
Код: Выделить всё
D:=form1.SpinEdit1.Value;
aDataToSend := fTextToAnsiString(form1.Edit1.text)+ //имя виртуального пользователя
fIntegerToAnsiString(3)+ //тип важности
fTextToAnsiString(uSenderLogin)+
fIntegerToAnsiString(0)+
fIntegerToAnsiString(D)+ //Вот тут компилятор стопорится
fTextToAnsiString('Причина')+
fIntegerToAnsiString(1);
// fTextToAnsiString(uText); //сообщение
CommFortProcess(dwPluginID, 1040, PAnsiChar(aDataToSend), Length(aDataToSend));
Код: Выделить всё
[DCC Error] main.pas(403): E2010 Incompatible types: 'WideString' and 'Double'
-
- Сообщения: 659
- Зарегистрирован: 08:54, 13.07.2010
- Откуда: Чебоксары, Россия
- Контактная информация:
Re: Технология создания плагинов
Думаю, что понадобится функция
Код: Выделить всё
function fDoubleToAnsiString(dValue : Double) : AnsiString; //вспомогательная функция для упрощения работы с данными
begin
//функция предназначена для ознакомительных целей,
//не рекомендуется для реального применения,
//так как при ее использовании проявляется избыточное копирование данных
SetLength(Result, 8);
CopyMemory(@Result[1], @dValue, 8);
end;
Re: Технология создания плагинов
Нашел решение: FloatToStr
Re: Технология создания плагинов
Большое спасибо)
Re: Технология создания плагинов
Максим, хотел бы уточнить насчёт CommFortProcess ID 51 (Отправить изображение в общий канал). Возникло подозрение, что у вас есть небольшая утечка памяти на ней. Сначала думал, что утечка была у меня, но после долгих мучений закомментировал функцию передачи этого изображения (CommFortProcess), оставив всю остальную обработку данных и потеря пропала. Даже если учесть, что изображение в клиенте тоже занимает память, то каждое обходится более мегобайта
И параллельно несколько вопросов:
1) какой максимальный размер (в байтах) изображения, которые может принь клиент?
2) какой максимальный размер для текстовых сообщений?
3) нет-ли ошибки в "число(формат изображения)" для данного ID, оно осталось как было в 4 и 3 версии?
И параллельно несколько вопросов:
1) какой максимальный размер (в байтах) изображения, которые может принь клиент?
2) какой максимальный размер для текстовых сообщений?
3) нет-ли ошибки в "число(формат изображения)" для данного ID, оно осталось как было в 4 и 3 версии?
Re: Технология создания плагинов
Очень не хватает приема событий как наложение/снятие ограничения(серверному плагину)
. Сравнивать весь список довольно громоздко... Есть ли в планах добавление такой функции? 


Последний раз редактировалось Artur 12:37, 25.10.2010, всего редактировалось 1 раз.