Как да заредя шрифт от ресурс
Искам да покажа псевдографика в шрифт FixedSys, но тя няма псевдографика, затова използвах различна (като терминал). Наскоро намерих променен FixedSysOEM.fon - показан, получих това, което исках, но този файл на шрифта виси на винта, което наистина не ми харесва.
Мога да натисна файла в ресурса - мога, мога да го взема от ресурса и да го сложа на винта - мога също, но ето как да свържете шрифта не от винта?
AddFontResource иска файл от винта (c: \ 123.fon), с CreateFileMapping наистина не можах да го разбера. Нещо подобно прави TotalCommander - взема шрифт от някъде (не го намерих в ресурсите) и им показва текста, а на винта няма екстри не се показват файлове.
В коя посока да копаем?
> откъдето взема шрифта (не го намерих в ресурсите) и им показва текста
Може би той рисува характер по характер?
Защо трябва да "не от винта"?
AddFontResource иска файл от винта (Трябва да използва низ, а не дръжка, за име на файл), разбрах го с CreateFileMapping (създавам, пиша, чета), но можете да получите достъп до файла само чрез дръжката - има несъвместимост от функции, аз съм в задънена улица, може би някой ще се сблъска с мъртва точка?
2Чапаев
По-конкретно „характер по характер“.
Файлът ще се стартира от READONLY диск и нямам желание да мисля за ramdrive, HDD (може да не са налични).
> Нещо подобно се прави от TotalCommander - откъдето стигне
> шрифт (не го намерих в ресурсите) и им показва текста
AFAIK, той инсталира шрифта в системата. И тогава може би използва функцията AddFontResourceEx с флага FR_PRIVATE.
Защо не мога да поставя файла с шрифта в папката на програмата и да използвам функцията, която съм посочил със съответния флаг? Шрифтът (не самият файл, разбира се) няма да се вижда от никого, освен от вашия процес.
Включване на шрифт като ресурс в * .EXE
Включване на шрифта във вашия EXE:
Първите два параметъра могат да бъдат всякакви. Те ще бъдат използвани в програмата по-късно.
След това използвайте компилатора на командния ред BRCC32.EXE, доставен с Delphi, за да създадете * .res файл. Ако вашият файл в стъпка 1 е наречен MyFont.rc, командният ред в DOS сесия трябва да изглежда така:
--------------------------------------------------------------------------------
BRCC32 MyFont