Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.29;
Скачать: CL | DM;

Вниз

извлечение информаций из фонта   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
3-1091407833
Натали
2004-08-02 04:50
2004.08.29
IBTable.RecordCount


6-1088353563
alexa
2004-06-27 20:26
2004.08.29
Передача файлов


6-1088508038
Andrey
2004-06-29 15:20
2004.08.29
Как запустить приложение по локальной сети?


3-1091681955
Марат
2004-08-05 08:59
2004.08.29
Счетчик DBGrid


14-1092322402
User_OKA
2004-08-12 18:53
2004.08.29
Siemens CX65