Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2012, 13:15   #1
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию Подбор размера шрифта строки на опр. область в пикселях

Здравствуйте.
Хочу динамический подобрать размер шрифта для строки под определенную область в пикселях.
Делаю при помощи методов
Код:
TextWidth() и TextHeight()
Для этого делаю цикл, например от 2 до 72, и использую значение на 1 меньшее, когда строка не помещается.
Код:
procedure TFormMain.GetFontSize(var Font: TFont; const Time: string;
  const AWidth, AHeigth: Integer);
var
  I: Integer;
begin
  for I := 2 to 72 do
  begin
    with PaintBox.Canvas do
    begin
      Font.Size := I;

      if (TextWidth(Time) > AWidth) or (TextHeight(Time) > AHeigth) then
      begin
        Font.Size := I - 1;
        Exit;
      end;
    end;
  end;
end;
Есть ли более производительные алгоритмы или методы, для решения этой задачи?
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 12.02.2012, 17:04   #2
Прик
Форумчанин
 
Регистрация: 08.09.2010
Сообщений: 880
По умолчанию

Можно такой механизм попытать:
Код:
PaintBox1.Canvas.Font.Size := -Round(PaintBox1.Height * 72 / PaintBox1.Canvas.Font.PixelsPerInch);
Работает. Правда, определение только по высоте. Наверное, можно сосватать определение размера и по высоте и по ширине

Последний раз редактировалось Прик; 12.02.2012 в 17:07.
Прик вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подбор группы файлов до заданого размера Zeon25 Microsoft Office Excel 40 27.01.2011 11:40
TWebbrowser изменение размера шрифта teandr Общие вопросы Delphi 2 08.06.2010 08:57
изменение размера примечания в пикселях ShamanK Microsoft Office Excel 2 17.12.2009 17:05
Изменение размера шрифта на шаг Diego__ Microsoft Office Word 8 16.12.2009 18:02
Изменение размера шрифта Nando Microsoft Office Excel 4 07.03.2009 16:45