Текущий архив: 2002.09.26;
Скачать: CL | DM;
ВнизНазвание шрифта Найти похожие ветки
← →
AL2002 (2002-09-11 20:46) [0]Есть файл AL2002.ttf. Сам шрифт называется "Little Tale of Town".
Нужно как-то присвоить переменной название шрифта. Шрифт не установлен. Как это сделать?
← →
AL2002 (2002-09-12 10:21) [1]:(
Неужто через blockread только можно?
Я так надеялся, что в Апи что-то есть такое.
((((((((((
← →
Рыжик (2002-09-12 10:51) [2]GetTypeFaceNameFromTTF?
← →
AL2002 (2002-09-12 10:56) [3]>Рыжик © (12.09.02 10:51)
Вы ею пользовались? А какую библиотеку она использует?
А то что-то не работает она.
← →
Alx2 (2002-09-12 11:11) [4]>AL2002 © (12.09.02 10:56)
Не это ли?
AddFontResource
RemoveFontResource
← →
AL2002 (2002-09-12 11:45) [5]>Alx2 © (12.09.02 11:11)
>>AL2002 © (12.09.02 10:56)
>Не это ли?
>AddFontResource
>RemoveFontResource
Не, не это. Не, ну и это тоже нужно, но мне вместе с добавлением фонта нужно и узнать его имя. Имя фонта, а не имя шрифта.
Можно, конечно, в код шрифтового файла полезть, найти тэги. Но это ж геморрой какой! :(
← →
AL2002 (2002-09-12 12:03) [6]А-ААААААААААААААААААААААААААА!!!!!!!!!!!!!
ПОДСКАЖИТЕ, КАК ЕГО УЗНАТЬ!!!!!!!!!!!!!!!!
← →
AL2002 (2002-09-12 12:28) [7]A-A-AAAAAAAAAAAA-AAAAAAAAAAAAAAAAAAA-AAAAAAAAAAA!!!!!!!!!!!!!!
← →
Alx2 (2002-09-12 12:49) [8]Посмотри пример на ftp.seagull.ru/faq/doc-othe/TTF1SPEC.DOC/SAMPLES
Может, оно? :)
← →
Alx2 (2002-09-12 12:52) [9]Или вот еще то же самое: ftp://ftp.relcom.ru/pub/.1/windows/microsoft/TrueType-info/ttfname.zip
← →
MBo (2002-09-12 13:02) [10]Шрифт установлен?
← →
MBo (2002-09-12 13:03) [11]если да, то
function EnumFntProc(var elf:TEnumLogFont;var ntm:TNewTextmetric;
FontType: dword ;strings:TStrings):integer; stdcall;
var s: string;
begin
if fonttype=TRUETYPE_FONTTYPE then
s:=elf.elfFullName
else
s:=elf.elfLogfont.lfFacename;
if (elf.elfLogFont.lfPitchAndFamily and FIXED_PITCH)=FIXED_PITCH
then s:="* Fixed * "+s;
strings.Add(S);
Result:=1;
end;
procedure TForm1.Button1Click(Sender: TObject);
var sl:tstringlist;
i:integer;
begin
sl:=tstringlist.create;
sl.Assign(Screen.Fonts);
for i:=0 to sl.count-1 do
EnumFontfamilies(Canvas.Handle, PChar(sl[i]),@EnumFntProc,
Integer(ListBox1.Items));
sl.free;
end;
← →
AL2002 (2002-09-12 13:31) [12]>MBo © (12.09.02 13:02)
>Шрифт установлен?
Неа. В этом то и вся проблема.
Может, точно через теги? Но шрифтяры же разные бывают. :(
Посмотрю щас, чё там Алкс2 мне посоветовал.
← →
AL2002 (2002-09-12 13:32) [13]>MBo © (12.09.02 13:02)
>Шрифт установлен?
Неа. В этом то и вся проблема.
Может, точно через теги? Но шрифтяры же разные бывают. :(
Посмотрю щас, чё там Алкс2 мне посоветовал...........
.......фигню он мне посоветовал.
Алкс. Это ты так шутишь?
← →
MBo (2002-09-12 13:46) [14]>Алкс. Это ты так шутишь?
Нет, там приведен анализ TableEntry для формата контурных шрифтов sfnt, используемого в TTF. Дело очень муторное.
>Шрифт установлен?
>Неа. В этом то и вся проблема
Ну так устанавливай временно, Enum-способ намного проще, пусть система с этими таблицами разбирается
← →
Alx2 (2002-09-12 13:47) [15]>AL2002 © (12.09.02 13:32)
Вообще-то буржуи советуют спецификации шрифтов смотреть (функция GetTypeFaceNameFromTTF теперь не поддерживается). А там - готовый пример. А фигня это или нет...
Microsoft used to have a function called GetTypeFaceNameFromTTF, but it"s an old and abondaned 16 bit function that hasn"t been replaced.
I would like to know how to retireve the font name from the naming table of a TTF file with a funtion writen in Delphi. Can you help me?
This function was not part of the Windows 3.1 API. Perhaps it was part of some example code MS shipped on a developer CD - check out their TTFNAME, a little demo that retrieves the "Mac" format name, then rewrite it a little to get the "Windows" name. Use the TrueType spec to help you. -- Laurence
http://www.truetype.demon.co.uk/ttqa97.htm
← →
AL2002 (2002-09-12 14:17) [16]Тагда такой вариант:
Сделать у Edit1 шрифт был AL2002.ttf без установки этого шрифта в систему.
Хоть это можно сделать?
← →
AL2002 (2002-09-12 16:41) [17]В общем, я сделал два TStringа. Одному сразу присваиваю список шрифтов в системе, потом делаю AddResource, потом присваиваю второму TStringу весь список шрифтов. А уже потом добываю имя того шрифта, которого нет в первом списке путём сравнивания.
Ну не изврат?
← →
Рыжик (2002-09-13 08:55) [18]
> AL2002 © (12.09.02 16:41)
Изврат, конечно. Особенно потому, что если в системе уже есть шрифт с таким же именем, то в этом случае хотя AddResource благополучно возвращает 1, однако список шрифтов не меняется.
← →
AL2002 (2002-09-13 10:34) [19]>Особенно потому, что если в системе уже есть шрифт
Нет, не особенно. Потому что если изменений не происходит, я это засекаю. Хоть что-то хорошее в этом методе (изврате).
(ну, а чё ещё делать:))
Страницы: 1 вся ветка
Текущий архив: 2002.09.26;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.008 c