Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Внизизвлечение информаций из фонта Найти похожие ветки
← →
nika_ufc (2004-08-08 19:42) [0]Здравствуйте. Подскажите как можно извлечь информацию из фонта ?
не могу разобраться в GetFontData.
Помогите мне, пожалуйста.
← →
Cobalt © (2004-08-09 01:45) [1]Есть один очень хороший совет по работе с WinAPI-функциями:
1) Открываешь "C:\Program Files\Common Files\Borland Shared\MSHelp\win32sdk.hlp", выбираешь необходимую функцию, открываешь окошко со справочной информацией по оной.
2) Находишь наверху окошка кнопочку с надписью "Overview", тыркаешь по ней, и читаешь от и до по этой теме.
3) Если при попытке применить знания, полученные в ходе прочтения этого бесценного файла, возникают затруднения - обращаться на форум с конкретным вопросом - мол, "Делаю так и так, должно получиться [это] (согласно Хелп, статья "Imyarec" ), а получаю другое".
← →
ssk © (2004-08-09 11:08) [2]1. почитать инфу по структуре TTF
2. смотря какая инфа нужна
вот помню, была у меня задача определить имя шрифта после установки его в систему без предварительного просмотра. и инфу читал, и на форумах спрашивал - никто ничего толком сказать не смог. наверное, просто не занимались люди такими вещами. и вот после некоторой возни пришлось применить один единственный способ, который я и использую до сих пор. ничего лучше, к сожалению, пока что не нашел. вот этот модуль:
{
Модуль для динамического подключения-отключения шрифтов
Параметры:
FontName - имя файла шрифта
Mode - режим установить или удалить
InSystemName - имя, под которым шрифт устанавливется в системе.
При удалении возвращается пустая строка.
Модуль сделал: Сердюк Сергей Кимович
E-Mail: ucad@pisem.net
}
unit sskDinFont;
interface
uses
Classes, Forms, Windows, Messages;
type
TFontMode = (fmInstall, fmUnInstall);
procedure SetFont(FontName: string; Mode: TFontMode; var InSystemName: string);
implementation
procedure SetFont(FontName: string; Mode: TFontMode; var InSystemName: string);
var
Old, New: TStrings;
k: integer;
begin
InSystemName:="";
case Mode of
fmInstall: begin
Old:=TStringList.Create;
Old.AddStrings(Screen.Fonts);
AddFontResource(PChar(FontName));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
New:=TStringList.Create;
New.AddStrings(Screen.Fonts);
for k:=Old.Count-1 downto 0 do
if New.IndexOf(Old[k])>-1 then
New.Delete(New.IndexOf(Old[k]));
if New.Count>0 then
InSystemName:=New[0];
New.Free;
Old.Free;
end;
fmUnInstall: begin
RemoveFontResource(PChar(FontName));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
end;
end;
end;
end.
← →
nika_ufc (2004-08-12 05:19) [3]>>>Cobalt ©
Вы правы. но у меня проблема все равно остается.
Я хочу узнать:
1. число символов в фонте
2. является ли этот фонт Unicode или нет
← →
TUser © (2004-08-12 06:22) [4]GetFontData, я так понимаю, - он для сообщения о том, какой шрифт установлен для данного устройства (hdc). Т.е. сколько в шрифте символов - он вряд ли вернет.
← →
TUser © (2004-08-12 06:27) [5]Хотя нет - это я погорячился. Все она сделает, только в SDK как-то странно описана - даже нет описания структуры, которую вернет эта ф-ция. Нормальное описание нашел в кн. Ф.Юаня, но там много всего - не перепишу. Если время ближе к вечеру будет - сосканю.
← →
nika_ufc © (2004-08-12 09:08) [6]>>> буду очень благодарен.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c