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

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

Как можно подсчитать длину строки в пикселях [D5, Win95/98, WinME, NT4, Win2k, WinXP]


dimich1978 ©   (2003-01-14 17:07:00) 

Например подсчет длины
S:="Дата"+datetostr(date);
или
у checkbox как можно узнать.
Делаю на checklistbox.canvas.textwidth
все ок, а вот с отдельной строкой нифига. Как это можно побороть.
Заранее всем благодарен


anatolyk   (2003-01-15 11:25:00) [1]

Всем привет!
А как это будет выглядеть в случае, если надо, напр. автоматически выровнять ширину колонки в DBGRID-е по наиболее широкому полю? Подскажите, пожалуйста.


eheyler   (2003-01-14 18:02:00) [2]

Что-нибудь в таком духе:

var DC: HDC;
hf: THandle;
Size: TSize;
s: string;
MyTextWidth: Integer;
begin
s := "Edit1";

DC := GetDC(Edit1.Handle);
hf := SelectObject(DC, Edit1.Font.Handle);
Windows.GetTextExtentPoint32(DC, PChar(s), Length(s), Size);

MyTextWidth := Size.cx; // Результат

SelectObject(DC, hf);
ReleaseDC(Edit1.Handle, DC);
end;

Или создать временный канвас


Avsam   (2003-01-14 17:46:00) [3]

Я понял о чем вопрос: как подсчитать длину строки в пикселях, имея определенные шрифтовые настройки?
то есть, определить заранее, влезет ли текст в TEdit и сколько не влезет.

так как?


eheyler   (2003-01-14 17:35:00) [4]

Отдельная строка не имеет длины в пикселах.
Её (длину в пикселах) имеет изображение этой строки на
каком либо устройстве (Canvas"e).


Skier   (2003-01-14 17:16:00) [5]

>dimich1978
Не понятно...


MBo   (2003-01-14 17:14:00) [6]

>все ок, а вот с отдельной строкой нифига
?????


Наверх

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