Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

робота со шрифтом [D7, Win2k, WinXP]


integeri ©   (2006-01-24 20:02:00) 

Нужно опредилть висоту ( в пикселях) которою будет занимать текст длиной N букв которой помещон в копонент типа Lable , но ширина компонента Lable стабильна.
Тоесть нужно пощитать висоту букв + сколько строк получилося !
Например єсть строка "Здесь обсуждаются вопросы связанные с DELPHI, но не попадающие в другие конференции. Соблюдайте тематику конференции"  а нужно опредилить какая будеть висота  етого текста когда уместьть в компонент определонной ширини.
тоесть вот так
"Здесь обсуждаются вопросы
связанные с DELPHI, но не по
падающие в другие конфере
нции. Соблюдайте тематику к
онференции"


integeri   (2006-01-26 17:09:00) [1]

получается сначала нужно будеть вставить текс в компонент на форме взять его висоту а потом вставлять у word ????


VirEx   (2006-01-25 19:36:00) [2]

я недавно с таким сталкивался, вот на API:
var
dc:hDC;
size_:tsize;
begin
   GetTextExtentPoint32(label1.Canvas.Handle, PChar(Label1.caption),length(PChar(label1.Caption)), size_);

   //то что вам нужно:
   size_.cx;
   size_.cy


Игорь Шевченко   (2006-01-25 18:34:00) [3]

DT_CALCRECT or DT_WORDBREAK


Игорь Шевченко   (2006-01-25 18:33:00) [4]


> Нужно опредилть висоту ( в пикселях) которою будет занимать
> текст длиной N букв


DrawText (....DT_CALCRECT)

Зависит от выбранного шрифта.


integeri   (2006-01-25 18:30:00) [5]

я так понял
Y := Form.canvas.TextHeight(Ваш текст)
X := Form.canvas.TextWidth(Ваш текст)
здесь непоможет


integeri   (2006-01-25 17:08:00) [6]

и устанавливайте высоту лейбла, в зависимости от длинны текста - лейбл здесь приведьон как пример , а всталять я буду в WORD в обект TextBox но щася я делаю так вставляю текс проверяю висоту етого TextBox єсли  не входит удаляю текст по 3 буковки , но работаєт очень медлино а хотелось зразу вставльть нужние куски з нужним текстом !!!


Константинов   (2006-01-24 21:56:00) [7]

а проще:
Label.WordWrap := true;

и устанавливайте высоту лейбла, в зависимости от длинны текста


Константинов   (2006-01-24 21:52:00) [8]

Y := Form.canvas.TextHeight(Ваш текст)
X := Form.canvas.TextWidth(Ваш текст)


Наверх

Титульная страница Поиск, карта сайта Написать письмо