Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.029 c
8-1085918904
Ivolg
2004-05-30 16:08
2004.08.29
Изменить размер изабражения?


3-1091450350
ZHK
2004-08-02 16:39
2004.08.29
Как в реальном времени добавить поля в таблицу?


8-1086870848
Damage
2004-06-10 16:34
2004.08.29
Максимальные размеры TBitMap


14-1092207513
BillyJeans
2004-08-11 10:58
2004.08.29
Размер переменной типа Boolean, кто знает?


10-1029760769
epflorov
2002-08-19 16:39
2004.08.29
сборка omniORB v3 и v4





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский