[英]Delphi 7 Indy 10 ioHandler
尝试制作一个简单的IRC客户端供个人使用,因此我安装了Delphi 7和Indy 10,请注意,我10年来一直没有在delphi中做任何工作,即使那样,它也没有那么先进。 只是为了玩耍。
procedure TForm1.IRCPrivateMessage(ASender: TIdContext; const ANickname,
AHost, ATarget, AMessage: String);
begin
if ATarget = '#channel' then
begin
Memo1.Lines.Add('[' + TimeToStr(Time) + '] <' + ANickname + '> ' + Amessage);
end;
if ATarget = '#channel2' then
begin
Memo2.Lines.Add('[' + TimeToStr(Time) + '] <' + ANickname + '> ' + Amessage);
end;
end;
这会因为Amessage的两种用途而冻结程序?
如果有人可以向我展示在私人消息事件的备忘录中获取时间,昵称和消息的有效示例,那就太好了:)
如问题(Delphi 2009) idIRC, MDI, and problems with hanging
问题的答案中所述, IRCPrivateMessage
与阻塞套接字在同一线程中运行。 在没有适当保护的情况下,不允许从此事件处理程序访问GUI。
您需要使用Synchronize
, Queue
或其他诸如将消息发布到主线程的技术。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.