Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вниз

скільки пікселів займе терміну в 10 символів? Знайти схожі гілки


bkv   (2002-12-10 16:42) [0]

Подскажте,
как узнать сколько пикселов займет срока в 10 символов?
Заздалегідь вдячний



MBo   (2002-12-10 16:44) [1]

canvas.textwitdth



Игорь Шевченко   (2002-12-10 16:44) [2]

використовує
TypInfo;

function GetTextWidthInPixels (AText: string; AControl: TControl): integer;
було
propInfo: PPropInfo;
thisFont: TFont;
починати
Result: = 0;

propInfo: = GetPropInfo (AControl.ClassInfo, "Font");

if propInfo <> nil then begin
thisFont: = TFont (GetObjectProp (AControl, "Font"));

if Assigned (thisFont) then
with TControlCanvas.Create do
намагатися
Control: = AControl;
Font.Assign (thisFont);
Result: = TextWidth (AText);
в кінці кінців
Free;
end;
end;
end;




han_malign   (2002-12-10 16:46) [3]

TCanvas:
TextExtent
TextHeight
TextRect
TextWidth
- не в контексте Canvas/DC - смысла не имеет



han_malign   (2002-12-10 16:48) [4]

Ігор Шевченко © (10.12.02 16: 44)
- тонко... :))))))



Skier   (2002-12-10 17:04) [5]

Повторение - мать учения :))
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1039161363&n=0



Subfire   (2002-12-10 17:11) [6]

Вообще странно...должен ведь существовуать способ, чтобы по двум параметрам - строчке и шрифту - однозначно определить длинну строчки в пикселах, вообще абстрагируясь от объектов и контролов...
Т.е. пользовательская процедура получающая на входе строку и TFont и возвращающая длинну строчки в пикселях.
Динамически создавать в ней объект и в нем смотреть длину не предлагать - это то же что и GetTextWidthInPixels by Игорь Шевченко, только в профил...
Кстати, его вариант пока самый лучший! -)



VaS   (2002-12-10 17:19) [7]


type
THackControl = class(TControl)
end;

function GetTextWidthInPixels(AText: string; AControl: TControl): integer;
begin
if AControl <> nil then
with TControlCanvas.Create do
try
Control := AControl;
Font.Assign(THackControl(AControl).Font);
Result:=TextWidth(AText);
finally
Free;
end
else
Result:=0;
end;


Не скажу, что сильно горжусь данной аналогией дружественного класса, но он должен быть побыстрее варианта Игоря Шевченко.



Игорь Шевченко   (2002-12-10 17:43) [8]

by the way - это не мой вариант. Это просто кусок из проекта.

Это из http://www.lmc-mediaagentur.de/dpool.htm - там много всего интересного. И бесплатного.



Subfire   (2002-12-10 17:49) [9]

Так....разбираем...
GetTextExtentPoint32();
дествительно позволяет узнать длину шрифта...если ей передать контекст устройства...
К тому же она использует текущий шрифт...
Т.е. решение реально одно - сменить текущий шрифт, вычислить, вернуть шрифт...Криво.



Skier   (2002-12-10 17:52) [10]

> Subfire
So...What"s your point ? :))



Игорь Шевченко   (2002-12-10 18:41) [11]

Subfire © (10.12.02 17:49)

К вашему сведению - ширина строки в пикселах зависит как раз от шрифта, которым она отображается.




сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2002.12.23;
Завантажити: [xml.tar.bz2];

Вгору





Пам'ять: 0.58 MB
Час: 0.027 c
14-74979
seacat
2002-12-03 12:40
2002.12.23
inaccessible value під час налагодження


1-74659
oomneeq
2002-12-12 19:36
2002.12.23
об'єкт як var - параметр


1-74719
Лагутін Антон
2002-12-13 21:55
2002.12.23
Допоможіть з DBGrid


3-74587
@andrew
2002-11-19 17:32
2002.12.23
SQL. Замучився шукати в доках !!! Хелп !!! Чи можна в змінну ...


1-74657
Andy BitOff
2002-12-12 23:00
2002.12.23
Як оновити форму?





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська