Главная страница
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.04 c
4-48836
Dwemer
2003-07-16 03:27
2003.09.15
Как правильно анализировать сообщения WM_CHAR ?


7-48808
Genemy
2003-06-30 16:20
2003.09.15
Печать отчета


1-48624
новый
2003-09-03 10:38
2003.09.15
Как можно программно разорвать соединение с Internet?


1-48556
^^^Dragon^^^
2003-09-01 19:16
2003.09.15
Строки


1-48564
JokerT
2003-09-04 16:01
2003.09.15
Ошибка