对于学校,我们有一个项目,使用delphi构建一个简单的记忆游戏。现在我想使用ClientSockets和ServerSockets添加在线多人游戏模式。到目前为止,我得到了主机和客户端游戏之间的联系。第一次尝试我想改变玩家拥有的点,所以我在ClientSocketRead程序/事件中有这个点:
zPunkte[1] := CmdValue;
ShowMessage( IntToStr( CmdValue ) );
lbPunkteSpieler1.Caption := inttostr(zPunkte[1]);
lbPunkteSpieler1.Update;
因此,当事件被触发时,会显示一个内容为“CmdValue”的消息框,但“lbPunkteSpieler1”标签的标题不会改变。我试图将标题更改为固定值,如事件中的“test”,但这也不起作用。当我想在ButtonClick事件中更改标题时,它可以正常工作。
我希望有人可以帮我解决这个问题^ - ^
答案 0 :(得分:0)
最有意义的解释是:
如果问题中的代码没有在GUI线程上运行,您需要找到一种方法将该代码编组到主线程上。