ShowMessage в Delphi XE5 Сокращено

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');

EDIT: И я получаю это при передаче в ShowMessage:

скриншот

Я должен отметить, что при отладке и наведении мыши на переменную zEncodedUrl она показывает все целиком.


person LIVESTUFF    schedule 08.11.2013    source источник


Ответы (1)


Это родное поведение диалогового окна задач Vista, по крайней мере, так, как оно вызывается Delphi. И диалоговое окно задачи Vista вызывается, когда вы вызываете ShowMessage в Windows. Он не будет разбивать слишком длинные строки. Если бы ваш текст содержал пробел, он был бы разделен.

Простым обходным решением было бы вызвать старый добрый MessageBox.

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

Возможно, вы захотите уточнить выбор владельца HWND, но вы поняли идею.

person David Heffernan    schedule 08.11.2013
comment
ДА! Я просто использовал это :) Но спасибо за отличное объяснение того, что происходит. Любая идея, есть ли возможность вернуться к окну showmessage, которое нам всем нравится? :) - person LIVESTUFF; 08.11.2013
comment
Ну, вы можете установить UseLatestCommonDialogs на False, но это также испортит ваши диалоги файлов. И получившееся окно сообщения довольно хромое. Линии совершенно не ломаются. Честно говоря, MessageBox здесь лучший выбор. - person David Heffernan; 08.11.2013