首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >德尔菲7 Indy 10 ioHandler

德尔菲7 Indy 10 ioHandler
EN

Stack Overflow用户
提问于 2014-01-07 09:48:54
回答 1查看 692关注 0票数 0

试图制作一个简单的IRC客户端供个人使用,所以我安装了Delphi 7和Indy 10,请注意,我没有在delphi中为10 (?)做任何工作。几年,即使是那时,也没有那么先进。只是为了玩玩而已。

代码语言:javascript
复制
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而冻结程序吗?

如果有人能向我展示一个获取时间的工作示例,尼克和消息添加到一份关于私有化活动的备忘录中,那就太好了:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-07 12:29:14

正如问题(Delphi 2009) idIRC, MDI, and problems with hanging的答案所述,IRCPrivateMessage运行在与阻塞套接字相同的线程中。不允许在没有适当保护的情况下从此事件处理程序访问GUI。

您需要使用SynchronizeQueue或其他技术,如向主线程发送消息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20968440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档