![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как использовать функцию 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]А почему ты решил, что она не срабатывает?