Re: Технология создания плагинов и программ-дополнений
Добавлено: 07:41, 23.04.2009
На данный момент нет.
форум поддержки
https://www.commfort.com/ru/forum/
На все эти вопросы можно найти ответ тут.$teelR@t писал(а):Хочу выяснить присутствуют ли для плагина к серверу такие функции как:
1. Получение списка и количества пользователей в определённом канале
2. Считывание сообщений из опредённого канала (включая имя отправившего, время...)
Код: Выделить всё
function PluginProcess(dwMessageID : DWORD; bMessage : PString; dwMessageLength : DWORD) : BYTE;
var aMessageToSend : AnsiString;
aChannel : AnsiString;
iLen : Integer;
begin
if dwMessageID = 5 then
begin
aMessageToSend:=MsgToChannel('main','text');
CommFortProcess(dwPluginID, 50, Pchar(aMessageToSend), Length(aMessageToSend));
//Пример получения и отображения названия активного канала:
{ iLen := CommFortGetData(11, nil, 0);
SetLength(aChannel, iLen);
CommFortGetData(11, Pchar(aChannel), iLen);
ShowMessage(aChannel);}
end;
Result := 0;
end;
Сообственно как от этого избавиться??dv писал(а): всё верно:
Код: Выделить всё
function MsgToChannel(сhannel, text : String): TStringStream;
var
i : Longint;
begin
Result:=TStringStream.Create('');
Result.Position:=0;
i:=0;
Result.Write(I,4);
i:=length(channel);
Result.Write(I,4);
Result.WriteString(channel);
i := length(text);
Result.Write(I,4);
Result.WriteString(text);
end;
........................
var
aMessageToSend:TStringStream;
begin
aMessageToSend:=MsgToChannel('main','TEST');
CommFortProcess(dwPluginID,50,PChar(aMessageToSend.DataString),Length(aMessageToSend.DataString));
........................
VIRUS писал(а): Не могу понять почему оно не работает, может я ошибся с кодом 50? Или не правильно организована функция MsgToChannel (если не сложно подправьте её)?
Код: Выделить всё
aMessageToSend:=chr(Length(Channel))+#0#0#0+Channel+chr(Length(Text))+#0#0#0+Text; {AnsiString}
CommFortProcess(dwPluginID, 50, Pchar(aMessageToSend), Length(aMessageToSend));
А если текст длиннее 255 символов?Modesty писал(а):Код: Выделить всё
aMessageToSend:=chr(Length(Channel))+#0#0#0+Channel+chr(Length(Text))+#0#0#0+Text; {AnsiString} CommFortProcess(dwPluginID, 50, Pchar(aMessageToSend), Length(aMessageToSend));
Код: Выделить всё
Length(aMessageToSend.DataString)
Код: Выделить всё
aMessageToSend.Size
Код: Выделить всё
i:=0;
Result.Write(I,4);
Это верно.-=SJ=- писал(а):А если текст длиннее 255 символов?
эммм дико извиняюсьdv писал(а):кажыся нерабочий.-=SJ=- писал(а):Delphi Null плагин для клиента чата CommFort версии 4.20+
-=SJ=- писал(а): эммм дико извиняюсьно только сечас (да, да через полтора месяца
) прочел этот пост...
Если еще актуально то что именно не рабатает?
Код: Выделить всё
{$E 'cfcplug'}
И в чем опечатка?Modesty писал(а):-=SJ=- писал(а): эммм дико извиняюсьно только сечас (да, да через полтора месяца
) прочел этот пост...
Если еще актуально то что именно не рабатает?опечатка в букавах.Код: Выделить всё
{$E 'cfcplug'}