Форум » Clipper » Загрузка своих шрифтов под Windows » Ответить

Загрузка своих шрифтов под Windows

Andrey: Раньше под ДОСом я грузил свои шрифты на экран. А под Виндами сейчас это не работает. Использую Clipper 5.3b+CT+Blinker 6.0 Можно ли это реализовать под Win98 или WinXP ?

Ответов - 15

ЮНМ:

Andrey: Я имею в виду не библиотеку LLG, а использование своих VGA-шрифтов экрана, в CT есть стандартная функция FONTLOAD(<cFileName>, <nFontArea>, ) --> FnErrorCode ? FONTLOAD("\FONTS\OLDENG.016", 2) FONTSELECT(2) Так вот она в окне Windows не работает. Как это исправить ?

ЮНМ:


Григорьев Владимир: А программа собрана в защищенном режиме или в реальном?

Andrey: В защищенном режиме, собрана Blinker'om.

MIKHAIL: Andrey пишет: Так вот она в окне Windows не работает. По ходу она и не должна работать, т.к. windows в оконном режиме отображает в графике и соответственно подменяет шрифты dos на свои, графические. Все нормально работает только в полноэкранном режиме.

Andrey: То есть нельзя сделать загрузку своих шрифтов в окне Windows ! Это точно ?

Григорьев Владимир: Мне любопытно следующее. 1. Какое значение возвращает функция FONTLOAD() в вашем случае. 2. У меня в свойствах ярлыка в закладке Font (на XP) указан размер шрифта 8 x 12. Может быть это влияет на то, что вам не удается загрузить ваш шрифт, который имеет другой размер?

MIKHAIL: Точно, windam пофиг какие ты грузишь шрифты, он вместо них свои вставляет, я проверил на утилите fontedit.В полноэкранном режиме все ок, в оконном нет. Работай в полноэкранном какая разница?

Andrey: Не могу, т.к. я гружу шрифты в стиле а-ля Нортон с оконтовкой и др.графической красотой. это было еще до Win95 ! Я пытаюсь пересобрать старые проекты на Harbour'e, может там можно загрузить ?

MIKHAIL: Andrey пишет: Не могу, т.к. я гружу шрифты в стиле а-ля Нортон с оконтовкой и др.графической красотой. Так ты в графическом режиме работаешь или в текстовом? Скинь мне шрифты кирилицы, какие у тебя есть mailto:veresov@supertoys.ru

Петр: Andrey пишет: Не могу, т.к. я гружу шрифты в стиле а-ля Нортон с оконтовкой и др.графической красотой. это было еще до Win95 ! Я пытаюсь пересобрать старые проекты на Harbour'e, может там можно загрузить ? Andrey, у тебя наверное небольшой шок , если ты собираешся доказать, что в WinXP нельзя запустить DOS задачу в полноэкранном режиме. 1) Не путай людей. Используя Clipper 5.3b+CT+Blinker 6.0, в частности функцию FONTLOAD() ты создаешь псевдографический интерфейс a-la NU for DOS. 2) Вот такая текстовая программа PROC main local frame := chr(219)+chr(219)+chr(219)+chr(217)+; chr(200)+chr(205)+chr(204)+chr(185)+; chr(32) SET CURS OFF SET SCORE OFF CLEAR SCREEN DispBox( 3, 3, 20, 20, frame, "w/b") FONTLOAD("nu.fnt", 2) FONTSELECT(2) собранная с использованием этого rmake файла p_cl5 = e:\clip53\bin\clipper p_lin = e:\clip53\bin\blinker .prg.obj: $(p_cl5) $** /a /n /w nu_font.obj : nu_font.prg nufont.exe : $(S**) $(p_lin) fi nu_font lib ct53 out nu_font только, что отработала у меня на WinXP SP2 в полноэкранном режиме без сучка и задоринки. Проверял специально. В оконном режиме тебе этого не сделает и сам NU. Библиотека сt53 это стандартная сt реального режима для Сlipper 53. сtp53 у меня нет. Так что о защищенном режиме говорить не буду, но думаю, что и там проблем нет. Я сам использую этот достаточно красивый интерфейс в своих Clipper программах, но использую вместо FONTLOAD("nu.fnt", 2) FONTSELECT(2) просто FONTLOAD("nu.fnt"). О nu.fnt - стандартный шрифт 8х16, длина файла 4096, создан Keyrus Font Editor Дмитрия Гуртяка. 3) Для Harbour реализации ct нет. Есть для xHarbour. Там в source\ct\video.c определена функция SETFONT, но там еще почему-то повписывали #ifdef __DJGPP__ 4) Если соберешся сам написать что-то, то может тебе поможет это CLIPPER fontLoad() { EXOREGS inreg, outreg; FHANDLE hFile; BYTEP fpBuff, realptr; if (!(PCOUNT > 0 && ISCHAR(1))) { _retni(1); return; } if (ExoIsExoSpace()) { if ((fpBuff = _xalloclow( 4096)) == NULL) { _retni(-1); return; } } else { _retni(1000); return; } hFile = _fsOpen( _parc(1), FO_READ | FO_EXCLUSIVE ); if (_fsError()) { _retni(2); _xfreelow(fpBuff); return; } _fsRead( hFile, fpBuff, 4096); if (_fsError()) { _retni(3); _xfreelow(fpBuff); return; } _fsClose( hFile ); if ((realptr = ExoRealPtr(fpBuff)) == NULL) { _retni(-2); _xfreelow(fpBuff); return; } inreg.es = FP_SEG(realptr); inreg.bp = FP_OFF(realptr); inreg.ax = 0x1100; inreg.cx = 256; inreg.dx = 0; inreg.bx = 0x1000; ExoRMInterrupt(0x10, &inreg, &outreg); _xfreelow(fpBuff); _retni(0); } Поскольку я обычно использовал Exospace, который с CT, по моему, не дружит, то когда-то написал эту функцию. В XP в полноэкранном режиме рабатает достаточно корректно.

Andrey: Так будут ли в окне Windows шрифты показывать в xHarbour'e ? Где-то года 2 назад на форумах fido7.clipper было что-то подобное, но у меня не сохранились записи. А для exospace могу выслать CTP53 для защищенного режима.

Петр: Andrey пишет: Так будут ли в окне Windows шрифты показывать в xHarbour'e ? Не будут. Не реализовано, и судя по всему и не будет, наверное надо учить GUI. Может сам попробую, если получится сообщу. За CTP53 спасибо, но сейчас я стараюсь перейти на xHarbour/GUI.

Петр: Петр пишет: 3) Для Harbour реализации ct нет. Есть для xHarbour. Я извиняюсь, для Harbour реализация ct конечно же есть, просто я имел ввиду, что там нет функций для работы с экранными шрифтами типа FontLoad или SetFont.



полная версия страницы