Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
1-1085123571
MegaVolt
2004-05-21 11:12
2004.06.06
Правильно ли я работаю с PChar?


14-1084452019
Dmitriy O.
2004-05-13 16:40
2004.06.06
А вот зацените анимацию на основе БД.


1-1085655449
Сергей_В
2004-05-27 14:57
2004.06.06
CAPICOM


14-1085290142
Сергей
2004-05-23 09:29
2004.06.06
Работа


1-1085415081
Serious Sam
2004-05-24 20:11
2004.06.06
Звезда