Текущий архив: 2004.10.24;
Скачать: CL | DM;
Внизбудет ли это работать для ANSI кодировки ? Найти похожие ветки
← →
nika_ufc © (2004-09-19 16:35) [0]Пользуюсь функций GetFontUnicodeRanges для извлечения число символов из шрифта. Как говорит название функций и его определение: The GetFontUnicodeRanges function returns information about which Unicode characters are supported by a font (Функция GetFontUnicodeRanges возвращает информацию, о том которые из Unicode символов поддерживаются шрифтом.).
Вопрос:
Означает ли это, что моя программа не правилна будет выводить информацию о числе символов для "не Unicode поддерживаемых" шрифтах ? например для шрифтах которые поддерживают только ANSI кодировку ?
Наблюдаю за программой, и по моему работает отлично для всех кодировок, а не должно бить из за определения.
Вот и код:unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
ListBox1: TListBox;
procedure ListBox1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ListBox1Click(Sender: TObject);
var
idx, sz: integer;
strFont: string;
glp: PGLYPHSET;
begin
idx := ListBox1.ItemIndex;
if idx < 0 then exit;
strFont := Listbox1.Canvas.font.Name;
Listbox1.Canvas.font.Name := listbox1.Items[idx];
sz := GetFontUnicodeRanges(listbox1.Canvas.Handle, Nil);
Getmem(glp, sz);
GetFontUnicodeRanges(listbox1.Canvas.Handle, glp);
Listbox1.Canvas.font.Name := strFont;
Showmessage(intToStr(glp.cGlyphsSupported)+"*"+inttostr(glp.flAccel));
FreeMemory(glp);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ListBox1.Items.Assign(Screen.Fonts);
end;
end.
← →
nika_ufc © (2004-09-20 09:04) [1]Прощу ответить проста - Да или Нет.
Страницы: 1 вся ветка
Текущий архив: 2004.10.24;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.039 c