Форум — Ответы ( К темам )
? | IMP: как правильно добавить в ресурсы свой файл шрифтов... (26-04-2003 03:18:36) |
как правильно добавить в ресурсы свой файл шрифтов и затем использовать , к примеру в RichEdit ? | |
Павел (27-04-2003 11:49:39) | |
Если правильно, то свой шрифт вы должны установить в соответствующую папку Windows, например при инсталляции вашей программы на компьютер пользователя А использовать в каком-либо компоненте RichEdit1->Font->Name = "TimesNewRoman"; // имя шрифта или void __fastcall TForm1::Button1Click(TObject *Sender) { if(FontDialog1->Execute()){ RichEdit1->Font->Assign(FontDialog1->Font); } } | |
IMP (28-04-2003 03:45:31) | |
Шрифт должен быть доступен только в моей программе. Наверно нужно как-то засунуть его в ресурсы и загружать во время работы , только как это делается ?(вспоминается CreateFontInDirect,LoadFont...) | |
Павел (29-04-2003 16:02:20) | |
Можно сделать так: Создайте файл ресурсов например mf.rc, впишите в него : myFont EXEFILE cbook3.fon и присоедените к проекту Далее в программе: void __fastcall TForm1::Button1Click(TObject *Sender) { char buf[100]; GetWindowsDirectory(buf,100); AnsiString s = (AnsiString)buf+"\\\\Fonts\\\\cbook3.fon"; if(!FileExists(s)){ // проверяем, шрифт уже установлен или нет char *Resu = "EXEFILE"; // если нет — устанавливаем TResourceStream* Res = new TResourceStream((int)HInstance, "myFont", Resu); Res->SaveToFile(s); // записываем наш файл шрифтов из ресурса в Font delete Res; } RichEdit1->Font->Size = 12; RichEdit1->Font->Style<<fsBold; RichEdit1->Font->Name = "CBook # 3"; // имя нашего шрифта } //------------------------------------------------------------- // При выходе из программы, например в событии главной формы onClose // можете удалить этот файл, DeleteFile(FileName) // если у вас есть права Администратора Соберите проект Build All Как подключить Font, если он не установлен в соответствующей папке Windows к сожалению не знаю, и мне не очень нравится такой подход, но по-другому вряд-ли можно. |