为什么我在ClientSockedRead事件中对Caption的赋值没有效果?

时间:2013-11-17 19:51:41

标签: delphi

对于学校,我们有一个项目,使用delphi构建一个简单的记忆游戏。现在我想使用ClientSockets和ServerSockets添加在线多人游戏模式。到目前为止,我得到了主机和客户端游戏之间的联系。第一次尝试我想改变玩家拥有的点,所以我在ClientSocketRead程序/事件中有这个点:

zPunkte[1] := CmdValue;
ShowMessage( IntToStr( CmdValue ) );
lbPunkteSpieler1.Caption := inttostr(zPunkte[1]);
lbPunkteSpieler1.Update;

因此,当事件被触发时,会显示一个内容为“CmdValue”的消息框,但“lbPunkteSpieler1”标签的标题不会改变。我试图将标题更改为固定值,如事件中的“test”,但这也不起作用。当我想在ButtonClick事件中更改标题时,它可以正常工作。

我希望有人可以帮我解决这个问题^ - ^

1 个答案:

答案 0 :(得分:0)

最有意义的解释是:

  1. 程序中的其他内容正在将标签的标题更改回其原始值。
  2. 您正在尝试从主GUI线程以外的线程更改标签的标题。
  3. 如果问题中的代码没有在GUI线程上运行,您需要找到一种方法将该代码编组到主线程上。