Показать сообщение отдельно
  #4  
Старый 25.07.2013, 11:14
Аватар для Freeman
Freeman Freeman вне форума
Местный
 
Регистрация: 05.10.2012
Адрес: Санкт-Петербург
Сообщения: 577
Версия Delphi: 6
Репутация: выкл
По умолчанию

Цитата:
Сообщение от NumLock
добавь отступ +4:
Почему 4, почему не 8 или не 40? А если у меня крупные шрифты? А если у меня схема для слабовидящих? Программист в первую очередь должен заботиться о совместимости.

Предлагаю такой вариант:
Код:
begin
  ln := ListBox1.Canvas.TextWidth(s);
  if ln > ListBox1.ClientWidth then
    ListBox1.Width := ln + ListBox1.Width - ListBox1.ClientWidth;
end;
Надеюсь, не надо объяснять, что разница между Width и ClientWidth как раз и должна заключать в себя отступы. Другой способ -- получать отступы функциями API вроде GetSystemMetrics, но тут он мне кажется излишне сложным.
Ответить с цитированием