![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обрезать строку [D7, XP]
ttt © (2013-02-25 21:05:00)Добрый вечер.
Например, необходимо ограничить "Ваня пошел гулять и не вернулся" 20 пикселями, чтобы получилось "Ваня пошел гулять...".
Есть ли для этого стандартные методы?
ttt (2013-02-25 23:02:00) [1]
> а в [3] что?
Млё. И доверяй потом переводам, которые добавляют в конец тире.
Dimka Maslov (2013-02-25 22:57:00) [2]
> Мой запасной вариант :) Мне кажется прорисовывать таким
> методом элементы таблицы не совсем корректно
Допустим стандартный метод есть. Как онбудет работать? Сначала определит, сколько символов влезает в заданную область, потом обрежет и выведедет. Что здесь не совсем корректного?
clickmaker (2013-02-25 22:46:00) [3]> не нашел флага, делающего это
а в [3] что?
ttt (2013-02-25 22:23:00) [4]
> А кто мешает использовать DrawText?
Дык, не нашел флага, делающего это.
clickmaker (2013-02-25 21:47:00) [5]> Вдруг есть стандартный метод подобно DT_END_ELLIPSIS
А кто мешает использовать DrawText?
Игорь Шевченко (2013-02-25 21:20:00) [6]ttt (25.02.13 21:14) [3]
В EhLib, по-моему, такое обрезание в гриде сделано. Исходники доступны, можно посмотреть
ttt (2013-02-25 21:14:00) [7]Хотя, можно было бы просто нарисовать поверх невлезающего обрезанного текста в конце три точки. НО! Вдруг есть стандартный метод подобно DT_END_ELLIPSIS.
ttt (2013-02-25 21:09:00) [8]
> while (Canvas.TextWidth(S) > 20) and (Length(S) > 0) do
> SetLength(S, Length(S)-1)
Мой запасной вариант :) Мне кажется прорисовывать таким методом элементы таблицы не совсем корректно :)
Dimka Maslov (2013-02-25 21:08:00) [9]while (Canvas.TextWidth(S) > 20) and (Length(S) > 0) do SetLength(S, Length(S)-1)