Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

Ширина стринга   Найти похожие ветки 

 
KSergey ©   (2003-09-02 13:51) [40]

[39] Игорь Шевченко © (02.09.03 13:30)
А я наверное, что-то пропустил насчет канвы ListBox"а и другого результата ?

Никогда не поздно подняться вверх по страничке ;) Впрочем, как раз вот в данном случае что-то странное. По идее результат должнен быть одинаков.

Еще одно замечание, если позволите.

Игорь Шевченко © (01.09.03 17:24)
Неа. Определяется ширина строки при условии рисования даннм шрифтом где угодно.


Вам должно быть стыдно такое писать. А как же быть вот с этим:

DC := GetDC (HWND_DESKTOP); ? ;)


 
nikkie ©   (2003-09-02 13:53) [41]

> А я наверное, что-то пропустил насчет канвы ListBox"а и
> другого результата ?

смотри Alibaba © (01.09.03 18:00)


 
nikkie ©   (2003-09-02 14:23) [42]

> Впрочем, как раз вот в данном случае что-то странное. По
> идее результат должнен быть одинаков.

Согласен, странно. Только что проверил - у меня результат один и тот же.


 
PVOzerski ©   (2003-09-02 15:03) [43]

Из моих запасов:
function GetSize(DC:tHandle;s:string):tSize;
var
size:tSize;
begin
if s="" then
s:="|";
GetTextExtentPoint(DC,pChar(s),length(s),Size);
GetTextExtentPoint32(DC,pChar(s),length(s),Result);
if Result.cx<Size.cx then
Result.cx:=Size.cx;
if Result.cy<Size.cy then
Result.cy:=Size.cy;
end;

Правда, у меня стояла задача определить оптимальную длину Edit-Box"а. Вызов обеих функций - и рекомендуемой GetTextExtentPoint32, и "устаревшей" GetTextExtentPoint - объясняется тем, что первая у меня ошибалась (занижала ширину) под NT4 при шрифте italic not true-type, а вторая работала в этой ситуации более корректно.


 
KSergey ©   (2003-09-02 15:12) [44]

[43] PVOzerski © (02.09.03 15:03)
Вызов обеих функций - и рекомендуемой GetTextExtentPoint32, и "устаревшей" GetTextExtentPoint - объясняется тем, что первая у меня ошибалась (занижала ширину) под NT4 при шрифте italic not true-type, а вторая работала в этой ситуации более корректно.

Для общего развития: а вторая - нгикогда не занижала? Так может ее и только использовать? Или занижала то одна, то другая?

PS
К стати, про шрифты в начертании Italic верно подмечено: TextWidth пожалуй не всегда верно определяет их ширину. Это видно даже в редакторе IDE дельфи: часто последние буквы в строчках, для которых включен наклонный шрифт обрезаются. С TLabel при AutoSize та же ерунда. (D5) Впрочем, здесь видимо ошибка в DrawText с DT_CALCRECT - именно ею определяется размер лейбла.


 
PVOzerski ©   (2003-09-02 15:50) [45]

>Для общего развития: а вторая - нгикогда не занижала? Так может ее и только использовать?
Врала тоже, кажется, наоборот, с TrueType, хотя деталей уже не помню. Помню, правда, что соблазн использовать только GetTextExtentPoint у меня тоже был, но от этой идеи пришлось отказаться.


 
Игорь Шевченко ©   (2003-09-02 15:52) [46]

KSergey © (02.09.03 13:51)

Мне, как ни странно, не стыдно. Потому как экранный контекст устройства в большинстве случаев совместим с контекстами устройств окон по Mapping Mode, CharacterExtra и т.д. :)



Страницы: 1 2 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.54 MB
Время: 0.03 c
14-48715
Grant
2003-08-28 10:51
2003.09.15
Класс TList


3-48399
rh
2003-08-26 12:39
2003.09.15
Записать текущую дату


3-48416
shnidke
2003-08-25 22:32
2003.09.15
Вычисление суммы


3-48465
napil
2003-08-22 12:09
2003.09.15
1С файлы dbf


1-48629
Jacob
2003-09-02 22:00
2003.09.15
CopyDirectory