Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как использовать функцию GetCharABCWidths? [D7, WinXP]


GrayFace ©   (2004-01-05 11:00:00) 

Извините, что повторяюсь. Мне нужно вызвать GetCharABCWidths, но она не срабатывает. Как ее правильно вызвать?


MBo   (2004-01-15 09:49:00) [1]

Эта функция предназначена только для TTF
GetCharABCWidthsFloat


GrayFace   (2004-01-15 09:33:00) [2]

Он вроде выбран. А как же быть с не TrueType шрифтами.


MBo   (2004-01-15 06:53:00) [3]

шрифт TTF должен быть выбран


GrayFace   (2004-01-14 20:38:00) [4]

Не работает.  Вот примерно код:
var bmp:TBitmap; ab:array[0..255] of TABC;
begin
........
 GetCharABCWidths(bmp.canvas.handle,0,255,ab);
........
end;

еще пробовал так:
var bmp:TBitmap; ab:array[0..255] of TABC; ooo:TPointer;
begin
........
 ooo:=@abc[0];
 GetCharABCWidths(bmp.canvas.handle,0,255,ab);
........
end;


GrayFace   (2004-01-13 23:26:00) [5]

Спасибо. Хелп читан, но я не знал, что надо TABC. Делал _ABC. И еще указатель на массив, а не на первый элемент делал.


MBo   (2004-01-13 08:31:00) [6]

очевидно, хелп не читан.

procedure TForm1.Button1Click(Sender: TObject);
var
 i:Integer;
 Wdts:array of TABC;
begin
Canvas.Font.Name:='Arial';
Canvas.Font.Size:=24;
SetLength(Wdts,Ord('Z')-Ord('A')+1);
GetCharABCWidths(Canvas.Handle,Ord('A'),Ord('Z'),Wdts[0]);
for i:=0 to Ord('Z')-Ord('A') do
 Memo1.Lines.Add(Format('%s: %d %d %d',
   [Chr(Ord('A')+i),Wdts[i].abcA,Wdts[i].abcB,Wdts[i].abcC]));
end;


GrayFace   (2004-01-13 01:43:00) [7]

Потому, что возвращает false и все значения массива - нули.


YuRock   (2004-01-05 11:49:00) [8]

А почему ты решил, что она не срабатывает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо