Текущий архив: 2004.06.06;
Скачать: CL | DM;
Вниз
Ширина текста Найти похожие ветки
← →
killer © (2004-05-20 23:09) [0]как можно определить ширину текста в пикселях, с учетом шрифта, номера шрифта, и текст жирный, наклонный и т.д.....
Есть функция TextWidth, но она просто ширину текста считает... без учета шрифта и т.д...
← →
panov © (2004-05-20 23:10) [1]>killer © (20.05.04 23:09)
Canvas.TextWidth считае с учетом шрифта и стилей
← →
killer © (2004-05-20 23:19) [2]а если есть просто текст.....
← →
jack128 © (2004-05-20 23:24) [3]
> Есть функция TextWidth, но она просто ширину текста считает...
> без учета шрифта и т.д...
это как? что такое ширина текста если нету шрифта?
> а если есть просто текст.....
создай временную канву, установи нужный шрифт и "вперед и с песней"
← →
killer © (2004-05-20 23:27) [4]jack128
может который по умолчанию стоит.... но она так записывается...
TextWidth(s: string): integer
← →
killer © (2004-05-20 23:28) [5]jack128
может который по умолчанию стоит.... но она так записывается...
TextWidth(s: string): integer
← →
killer © (2004-05-20 23:29) [6]а как создать временную канву? случаянно не переменная типа TCanvas?
т.е.
var
Canv: TCanvas;
← →
jack128 © (2004-05-20 23:30) [7]
> может который по умолчанию стоит.... но она так записывается...
> TextWidth(s: string): integer
это стандартная функция? если да т в каком модуле сидит, если нет - то приведи код - охота взглянуть..
← →
Dimaxx (2004-05-20 23:35) [8]Функция стандартная, покоится в graphics, как функция класса tcanvas.
← →
jack128 © (2004-05-20 23:38) [9]
> Функция стандартная, покоится в graphics, как функция класса
> tcanvas.
разницу между функцией и методом чувствует?
← →
killer © (2004-05-20 23:40) [10]а с Канвасом я правильно понял?
Про TextWidth что-то я не знаю где.... в книге посмотрел... там модуль не указан...
← →
default © (2004-05-20 23:40) [11]CreateFont
SelectObject
GetTextExtentPoint32
SelectObject (восст-ем предыд-ие настройки)
← →
Gero © (2004-05-20 23:43) [12]with TBitmap.Create.Canvas do
try
Wid := TextWidth(...);
finally
Free;
end;
← →
jack128 © (2004-05-20 23:44) [13]
> default © (20.05.04 23:40)
Сань, не грузи человека ;-)
off и зарегистрируйся по новой ;-)
← →
jack128 © (2004-05-20 23:48) [14]
> with TBitmap.Create.Canvas do
> try
> Wid := TextWidth(...);
> finally
> Free;
> end;
битмап можно убрать.
with TCanvas.Create do
try
Font.Name := "Arial";
Result := TextWidth(...);
finally
Free;
end;
← →
Gero © (2004-05-20 23:58) [15]
jack128 © (20.05.04 23:48)
> битмап можно убрать.
Не думаю.
← →
jack128 © (2004-05-21 00:00) [16]
> Не думаю.
зря :-)
Почему не думаешь? Есть причины или это так, догадки на уровне инстинктов?
← →
Gero © (2004-05-21 00:02) [17]
> jack128 © (21.05.04 00:00)
Попробуй как ты предложил, узнаешь.
← →
nikkie © (2004-05-21 00:08) [18]>[12] Gero
во-первых, Free кому делаешь?
во-вторых, человек просил для указанного шрифта ширину получить.
← →
killer © (2004-05-21 00:16) [19]With TCanvas.Create do
begin
Font:=Edit1.Font;
Label1.Caption:=IntToStr(TextWidth(Edit1.Text));
end;
делаю я так... почему у меня ошибка вылитает?
← →
jack128 © (2004-05-21 00:24) [20]
> Попробуй как ты предложил, узнаешь.
убедился..Хотя создание битмапа мне тоже не нравится :)...Ладше так
var
h: THandle;
begin
Result := 0;
with TCanvas.Create do
try
h := CreateCompatibleDC(0);
if h <> 0 then
try
Handle := h;
Font.Name := "Arial";
Result := TextWidth("tra-la-la");
finally
DeleteDC(H);
end;
finally
Free;
end;
← →
Gero © (2004-05-21 07:43) [21]
nikkie © (21.05.04 00:08)
> во-первых, Free кому делаешь?
Ошибся...
> jack128 © (21.05.04 00:24)
Да, это другое дело. Но мне почему-то кажется, что вопрошающий не слишком поймет для чего надо CreateCompatibleDC, например.
Вариант с битмапом проще, поэтому приведу и его:
with TBitmap.Create do
try
with Canvas do
begin
Font.Name := "Arial";
Result := TextWidth("Some text");
end;
finally
Free;
end;
Страницы: 1 вся ветка
Текущий архив: 2004.06.06;
Скачать: CL | DM;
Память: 0.51 MB
Время: 0.054 c