Delphi XE5中的ShowMessage缩短了

LIV*_*UFF 5 windows delphi delphi-xe5

ShowMessage() 在Delphi XE5中缩短了文本.

这对我来说是新的,还是由于编码网址时编码的字符?我需要看到整个事情.

我使用以下函数来编码我的网址:

function TConnector.EncodeUrl(aDecodedUrl: String): String;
begin
  result:= tIdUri.URLEncode(aDecodedUrl);
end;
Run Code Online (Sandbox Code Playgroud)

然后我在这里打电话:

zEncodedUrl := Connector.EncodeUrl('http://' + Connector.Host + 'Node:' + edtPath.Text + '.GetObjectListDataAsJSON');
Run Code Online (Sandbox Code Playgroud)

编辑:我传递给ShowMessage时得到这个:

截图

我应该注意,在调试并将鼠标放在zEncodedUrl变量上时,它会显示完整的内容.

Dav*_*nan 7

这是Vista任务对话框的本机行为,至少在Delphi调用时.当你ShowMessage在Windows上调用时,Vista任务对话框就会被调用.它不会分割太长的行.如果您的文本包含空格,则会将其拆分.

一个简单的解决方法就是打电话给老人MessageBox.

MessageBox(Application.MainForm.Handle, PChar(Message), PChar(Caption), MB_OK);
Run Code Online (Sandbox Code Playgroud)

您可能希望微调所有者的选择HWND以通过,但您明白了.

  • 好吧,你可以将`UseLatestCommonDialogs`设置为'False`,但这也会搞砸你的文件对话框.结果消息框非常蹩脚.它根本不会破坏线条.老实说,`MessageBox`是这里的最佳选择. (2认同)