5

ShowMessage()Delphi XE5 ではテキストを短縮します。

これは私にとって新しいことですか、それとも 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 に渡されたときにこれを取得します:

スクリーンショット

zEncodedUrlデバッグして変数の上にマウスを置くと、すべてが表示されることに注意してください。

4

1 に答える 1

7

これは、少なくとも Delphi によって呼び出される、Vista タスク ダイアログのネイティブな動作です。また、Windows で呼び出すと、Vista のタスク ダイアログが呼び出さShowMessageれます。長すぎる行は分割されません。テキストにスペースが含まれていると、テキストが分割されます。

簡単な回避策は、古き良きを呼び出すことMessageBoxです。

MessageBox(Application.MainForm.Handle, PChar(Message), PChar(Caption), MB_OK);

渡す所有者の選択を微調整したい場合HWNDがありますが、アイデアは得られます。

于 2013-11-08T19:42:57.057 に答える