Delphi XE5中的ShowMessage缩短版

5

Delphi XE5中的ShowMessage()可以缩短文本。

这对我来说是新的,还是因为编码URL时编码的字符?我需要看到整个内容。

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

function TConnector.EncodeUrl(aDecodedUrl: String): String;
begin
  result:= tIdUri.URLEncode(aDecodedUrl);
end;

我在这里调用:
zEncodedUrl := Connector.EncodeUrl('http://' + Connector.Host + 'Node:' + edtPath.Text + '.GetObjectListDataAsJSON');

编辑: 当传递给ShowMessage时,我会得到以下结果:

screenshot

需要注意的是,在调试并将鼠标放在zEncodedUrl变量上时,它会显示完整内容。

1个回答

6
这是 Vista 任务对话框的原生行为,至少在 Delphi 中是这样调用的。而在 Windows 上调用 ShowMessage 时,会调用 Vista 任务对话框。它不会分割太长的行。如果您的文本包含空格,则会被分割。
一个简单的解决方法是调用经典的 MessageBox
MessageBox(Application.MainForm.Handle, PChar(Message), PChar(Caption), MB_OK);

你可能需要微调传递的所有者 HWND 的选择,但你已经明白了这个想法。

是的!我刚才就在用它 :) 但感谢你对正在发生的事情进行了很好的解释。你知道是否有切换回我们喜欢的showmessage窗口的选项吗? :) - LIVESTUFF
2
好的,你可以将 UseLatestCommonDialogs 设置为 False,但这也会破坏你的文件对话框。而且生成的消息框非常简陋,根本不会换行。老实说,MessageBox 在这里是最好的选择。 - David Heffernan

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