【发布时间】:2016-09-04 21:24:40
【问题描述】:
今天我偶然发现了一些神秘的东西。这行代码:
showmessage(menuMain.player[2] + ' ready!');
生成此消息(例如 menuMain.player[2] = Player):
播放器
但是如果我这样写代码(例如 menuMain.player[2] = Player):
showmessage('Test: ' + menuMain.player[2]);
它将生成此消息:
测试:播放器
根据调试器,字符串(buffer := menuMain.player[2] + ' ready!')的确切值是这样的:
'玩家'#0#0#0#0#0#0#0#0'准备好了!'
我确实相信这是一个编译器故障,因为我在另一个代码块中有 exact 相同的行,并且它完美地工作。
现在对我来说最困难的部分是我笨,还是这确实是一个小故障?
【问题讨论】:
-
你对
menuMain的声明是什么? -
请提供minimal reproducible example,我们可以使用它来重现此问题。
-
@MartynA menuMain是项目的主要形式,player是字符串的array[1..2]。
-
@RobKennedy 缓冲区字符串的确切值 (buffer = menuMain.player[2] + 'ready!'): 'Player'#0#0#0#0#0#0#0# 0'准备好了!'
-
很好的信息。有人可以给出明确的答案就足够了。此外,您还学会了检查调试器。
标签: string delphi delphi-10-seattle