Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.025 c
1-1085645771
Floppy
2004-05-27 12:16
2004.06.06
Удаление файла


3-1084363746
Term
2004-05-12 16:09
2004.06.06
MIDAS, обратные вызовы или чтото типа того


3-1084528267
Alex_xxx
2004-05-14 13:51
2004.06.06
insert into table1 select key,kol from table2 ?????


14-1084925158
Serzh ml
2004-05-19 04:05
2004.06.06
(win XP) vs (win NT+9x)


14-1084636596
KLAUS
2004-05-15 19:56
2004.06.06
Помогите реализовать код с использование MD5




   Наверх