Привет У меня есть проблема со следующим кодом:Ошибка с PrivateMessages в IdIRC
program test;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils, idIRC, idContext, idGlobal;
// procedure TForm1.IdIRC1PrivateMessage(ASender: TIdContext; const ANickname,
// AHost, ATarget, AMessage: string);
// procedure TForm1.IdIRC1Raw(ASender: TIdContext; AIn: Boolean;
// const AMessage: string);
procedure IrcPrivateMessage(ASelf: Pointer; const ANickname, AHost, ATarget,
AMessage: string);
begin
Writeln('[+] Message ' + ANickname + ' > ' + AMessage);
end;
procedure IrcRaw(ASelf: Pointer; ASender: TIdContext; AIn: Boolean;
const AMessage: String);
begin
Writeln(iif(AIn, '[Recv] ', '[Sent] ') + AMessage);
end;
var
irc: TIdIRC;
m1: TMethod;
m2: TMethod;
begin
try
irc := TIdIRC.Create(nil);
try
irc.Host := 'localhost';
irc.Port := 6667;
irc.Nickname := 'tester';
irc.Username := 'tester';
m1.Code := @IrcRaw;
m1.Data := irc;
irc.OnRaw := TIdIRCRawEvent(m1);
m2.Code := @IrcPrivateMessage;
m2.Data := irc;
irc.OnPrivateMessage := TIdIRCPrivMessageEvent(m2);
try
irc.Connect;
except
Writeln('Nay');
Exit;
end;
Writeln('Yeah');
irc.Join('#locos');
while ('1' = '1') do
begin
//
end;
finally
irc.Free;
end;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
Проблема заключается в том, когда я получаю личное сообщение, запись ANickname дает мне следующую ошибку: тест
Project .exe поднял класс exeption # C00000005 с нарушением права доступа на 0x00404673: прочитайте адрес 0x03cf4e58
Что я делаю неправильно?
ваш код дает мне сообщение об ошибке: [DCC Error] test.dpr (20): E2029 ';', ')' или '=' ожидается, но ':' found – adsdsa
Измените оскорбительные ':' на ';'. –