Форум: "Основная";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
ВнизКак инсталировать шрифт в систему? Найти похожие ветки
← →
demon © (2008-11-16 22:17) [0]Есть несколько шрифтов (*.ttf файлов), их нужно установить с систему, как это сделать?
← →
CodeMaster © (2008-11-16 23:02) [1]Ищешь папку Fonts и копируешь туда всё (подсказка реестр)
← →
demon © (2008-11-16 23:42) [2]Это понятно.
А как тогда получить название шрифта чтобы дабавить его в реестр?
← →
{RASkov} © (2008-11-17 00:26) [3]> [2] demon © (16.11.08 23:42)
Пробывать не охото.... но помоему простое копирование в системную папку файла со шрифтом(ами) и ось сама все проинсталирует...
А вообще есть АПИ функции для работы со шрифтами посмотри: Font and Text Functions
и например: AddFontResource
← →
{RASkov} © (2008-11-17 00:27) [4]> в системную папку
ну имелось в виду [1]) т.е. %SystemRoot%\Fonts
← →
demon © (2008-11-17 00:38) [5]Нет, не проинсталирует.
Но если после копирования открыть Fonts с панели управления, то шрифты пропишуться в реестр.
← →
Германн © (2008-11-17 01:28) [6]
> demon © (17.11.08 00:38) [5]
>
> Нет, не проинсталирует.
> Но если после копирования открыть Fonts с панели управления,
> то шрифты пропишуться в реестр.
>
Возможно поможет этот ответ:
http://www.delphi-club.ru/delphi/add_true_type_font.html
Токо он несколько устарел. Ветка реестра Fonts нынче находится в другом месте.
← →
demon © (2008-11-17 03:39) [7]Все ровно там нету ничего по извлечению информации о названии шрифта из ttf файла, просто добавляеться заранее прописаное название.
А можно ли где глянуть спецификацию по ttf файлам (ну там описание формата, не знаю как правильно сказать...)?
← →
CodeMaster © (2008-11-17 21:30) [8]Вообще не понимаю зачем тебе инсталировать Шрифт в систему? Делаешь программу - закидываешь в её директорию файл шрифта, связываешь функцией AddFontResource и работаешь как с обычным шрифтом.
А вообще лучше канешно сделать на WinApi, там и эффектов можно добиться неплохих.
← →
demon © (2008-11-17 21:42) [9]нуу нет, это типа программа-инсталятор, вернее это командный файлы был изначально, приводивший свежеустановленую систему в нужное мне состояние (ну там проги с rar-ов распаковавал и настройки в реестр вносил), но шрифты так просто не установишь, вот и пишу консольную утилитку :)
← →
demon © (2008-11-18 00:37) [10]вот написал код:
program addTTF;
{$APPTYPE CONSOLE}
uses Windows, SysUtils, registry;
var
fname,fname2, temp:string;
PWindowsDir: array [0..255] of Char;
hReg: TRegistry;
procedure haveerror(i : integer);
begin
case i of
0: writeln("Error with copyring. ");
1: writeln("Error with adding to registry. ");
end;
halt;
end;
begin
if ParamCount > 0 then
begin
if FileExists(ParamStr(1)) and (uppercase(extractfileext(ParamStr(1)))=".TTF") then
begin
try
GetWindowsDirectory(PWindowsDir,255);
fname:=expandfilename(ParamStr(1)) ;
fname2:=PWindowsDir+"\FONTS\"+extractfilename(ParamStr(1));
CopyFile(pchar(fname), pchar(fname2), true);
except
haveerror(0);
end;
try
hReg := TRegistry.Create;
hReg.RootKey := HKEY_LOCAL_MACHINE;
hReg.LazyWrite := false;
hReg.OpenKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts", false);
temp:=extractfilename(ParamStr(1));
delete(temp, length(temp)-3, 4);
hReg.WriteString(temp+" (TrueType)", extractfilename(ParamStr(1)));
hReg.CloseKey;
hReg.free;
except
haveerror(1);
end;
writeln("Successful") ;
end else writeln("error") ;
end else
begin
writeln("Programm addTTF install TTF font in system");
writeln("Use: addTTF <filename>");
end;
end.
не появляеться шрифт в системе, хотя в папку скопировался и в реестр добавился.
← →
demon © (2008-11-18 01:22) [11]Ура! Заработало.
нужно было добавитьAddFontResource(pchar(fname2));
SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
ЗЫ. Покритикуйте код, как правильнее было бы?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2009.11.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c