Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.09.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.011 c
9-48392
MeF88
2003-03-10 12:17
2003.09.15
Кто нить делал авиасим?


14-48752
Kost
2003-08-26 21:45
2003.09.15
Tables


3-48410
rh
2003-08-25 08:56
2003.09.15
SQL-запрос программно


1-48502
fksa
2003-09-04 12:56
2003.09.15
Живут ли вместе Delphi5 и Delphi7?


3-48404
Vitalygavrilov
2003-08-26 08:27
2003.09.15
Как произвести обмен данными между MDI-окнами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский