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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.09.2023, 15:28   #1
The_Immortal
Пользователь
 
Регистрация: 08.10.2008
Сообщений: 27
По умолчанию Верхний отступ текста

Пытаюсь определить, так скажем, Top Margin (верхний отступ) при отрисовке текста. Нижний определяется без проблем, хотелось бы понять как определить верхний.

Иллюстрация того, что хочется (указано оранжевым цветом).

Код:
procedure TForm2.Button1Click(Sender: TObject);
var
  StrWidth, StrHeight: Integer;
  TextMetric: TTextMetric;
  TextRect: TRect;
  Str: string;
  TextSize: TSize;
begin
  if FontDialog1.Execute then
  begin
    Str := 'Test';

    Image1.Canvas.Brush.Color := clWhite;
    Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
    Image1.Canvas.Font.Assign(FontDialog1.Font);

    StrWidth := Image1.Canvas.TextWidth(Str);
    StrHeight := Image1.Canvas.TextHeight(Str);
    TextRect := Rect(10, 10, StrWidth, StrHeight);

    Image1.Canvas.Brush.Color := clSkyBlue;
    Image1.Canvas.FillRect(TextRect);
    Image1.Canvas.TextOut(TextRect.Left, TextRect.Top, Str);

    GetTextMetrics(Image1.Canvas.Handle, TextMetric);
    tmHeight.Value := TextMetric.tmHeight;
    tmAscent.Value := TextMetric.tmAscent;
    tmDescent.Value := TextMetric.tmDescent;
    tmInternalLeading.Value := TextMetric.tmInternalLeading;
  end;
end;
Спасибо!


UPD: считал вручную попиксельно сверху через параллельный Bitmap.

Последний раз редактировалось The_Immortal; 26.09.2023 в 16:04.
The_Immortal вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как добавить отступ справа для текста? noob-saibot HTML и CSS 1 12.05.2022 18:21
RichEdit Верхний и нижний отступ. Replicant Компоненты Delphi 2 16.11.2016 16:30
Верхний регистр для русского текста. Visual C++ Kingdom_Reborn Помощь студентам 1 17.12.2010 02:28
Отступ текста без бэкграунда. Belchek HTML и CSS 2 22.02.2010 09:41
Вопрос от начинающего - отступ текста aquapage HTML и CSS 2 29.05.2008 19:02