在Delphi中更改带有某些变量的MessageBox消息的标题

3
如何在消息对话框的标题中加入变量?我尝试过以下方法:
Application.MessageBox('x * y = ' + result, 'this is title', MBICONINFORMATION); 

但是它显示一个错误,说不兼容的类型:'String'和'PAnsiChar',我知道这是因为'result'变量不允许。有任何解决方法吗?谢谢


由于这涉及字符串,因此请注明您正在使用的 Delphi 版本。此外,问题可能是函数/方法“result”的类型为ansistring,将整个表达式更改为ansistring。尝试用string(result)替换result。 - Marco van de Voort
2个回答

5
我建议您使用以下格式的Format函数: Application.MessageBox(PChar(Format('x * y = %s', [result])), '这是标题', MB_ICONINFORMATION); 该函数用于在字符串中插入变量。在上述代码中,“%s”是占位符,将被[result]替换。请注意,保留HTML标记。

这将会产生与问题中代码相同的编译器错误。 - user743382
1
现在看起来是正确的,但我仍然不确定这是否有助于回答问题。使用“格式”建议在某些情况下可能很有用,但这不是这个问题所涉及的内容,因此它可能应该是一条评论而不是一个答案。无论如何,由于您的答案现在包括实际的问题答案,因此取消了反对票。 - user743382
我同意你的看法,这更像是一些建议而不是答案。 - Keeper

4

OK, I've known just put

Application.MessageBox(<b>PChar</b>('x * y = ' + result), 'this is title', MB_ICONINFORMATION);

也许可以为其他人提供参考。

请在PChar周围移除**。 - crefird
1
@crefird жҲ‘еҒҮи®ҫ ** жҳҜжғіиҰҒе°Ҷ PChar еҠ зІ— (**text** йҖҡеёёдјҡжҳҫзӨәдёә text)пјҢеӣ жӯӨжҲ‘е·Із»ҸиҝӣиЎҢдәҶзӣёеә”зҡ„зј–иҫ‘гҖӮ - user743382

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接