Как вывести текст с красивым обрезанием если не помещается
Используй вызов DrawTextEx, установив в параметре dwDTFormat значение
DT_PATH_ELLIPSIS.
procedure TForm1.FormPaint(Sender: TObject);
var
r: TRect;
begin
r := Rect(20, 20, 110, 70);
// DT_PATH_ELLIPSIS or DT_WORD_ELLIPSIS or DT_END_ELLIPSIS
DrawTextEx(Form1.Canvas.Handle, 'Delphi World - это круто!!!',
25, r, DT_WORD_ELLIPSIS, nil);
end;
Вывод текста с красивым обрезанием, если он не помещается, можно выполнить с помощью функции DrawTextEx и установкой параметра dwDTFormat в DT_PATH_ELLIPSIS.
В вашем коде вы сейчас устанавливаете этот параметр в DT_WORD_ELLIPSIS, что будет обрезать текст по границам слов. Если вы хотите обрезать текст по границам символов, измените его на DT_PATH_ELLIPSIS.
Вот исправленный код:
procedure TForm1.FormPaint(Sender: TObject);
var
r: TRect;
begin
r := Rect(20, 20, 110, 70);
// DT_PATH_ELLIPSIS или DT_WORD_ELLIPSIS или DT_END_ELLIPSIS
DrawTextEx(Form1.Canvas.Handle, 'Delphi World - это круто!!!',
Length('Delphi World - это круто!!!'), r, DT_PATH_ELLIPSIS, nil);
end;
В этом коде я добавил функцию Length для указания длины текстовой строки. Это необходимо потому, что DrawTextEx требует длины текста в качестве параметра.
Также обратите внимание, что DT_PATH_ELLIPSIS обрезает текст по границам символов, а не слов. Если вы хотите обрезать текст по границам слов, используйте DT_WORD_ELLIPSIS.
Статья описывает способ вывода текста с обрезанием в Delphi, используя вызов DrawTextEx и параметр dwDTFormat с значением DT_PATH_ELLIPSIS.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS