繁体   English   中英

Delphi 7 Indy 10 ioHandler

[英]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。

您需要使用SynchronizeQueue或其他诸如将消息发布到主线程的技术。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM