On-line: PSP, Alex_Cher, гостей 0. Всего: 2 [подробнее..]
АвторСообщение



Пост N: 2
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 06.06.11 15:07. Заголовок: Achoice, UserFunction, Row


В большом проекте много где используется Achoice с пользовательской функцией.
В этой пользовательской функции, позиция курсора определяется через Row();

В Clipper 5.2 все нормально работает, а под Harbour текущая позиция курсора непредсказуема.

Можно подправить исходники, и использовать 3-й параметр <nRowPos>, передающийся в функцию и прибавлять к нему верхнюю координату Achoice(Top...
Но править очень много, хотелось бы облегчить себе жизнь.

Может кто сталкивался с этим, или у кого есть идеи, поделитесь.
Спасибо!

PS Используется: harbour-2.0.0-win.exe

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 16 [только новые]


moderator




Пост N: 220
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 06.06.11 15:28. Заголовок: Sikambr пишет: у ко..


Sikambr пишет:

 цитата:
у кого есть идеи, поделитесь


Идея простая: надо использовать более свежую сборку харбора с SVN (которая обновляется ежесуточно в автоматическом режиме), поскольку после выхода 2-й версии в работу функции Achoice() гарантированно вносились изменения разработчиками.

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 3
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 06.06.11 18:23. Заголовок: Скачал ночную версию..


Скачал ночную версию, откомпилил прогу, а она вместо русских букв, стала кракозябры выводить.
Пытался вставить HB_CDPSELECT( "RU866" ), нифига не вышло.

PS Зато в Achoice() функция Row() стала как надо работать.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 206
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 07.06.11 00:10. Заголовок: Sikambr пишет: Скач..


Sikambr пишет:

 цитата:
Скачал ночную версию, откомпилил прогу, а она вместо русских букв, стала кракозябры выводить.
Пытался вставить HB_CDPSELECT( "RU866" ), нифига не вышло.



REQUEST HB_CODEPAGE_RU866
HB_CDPSELECT( "RU866" )

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 4
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 07.06.11 12:45. Заголовок: В Harbour rev.16855 ..


В Harbour rev.16855 заметил одну маленькую неточность в библиотеке SuperLib.
В файле superlib.hbp строка

 цитата:
-olib/${hb_plat}/${hb_comp}/super


изменена на

 цитата:
-o${hb_name}


а в файле superlib.hbc указано

 цитата:
libpaths=lib/${hb_plat}/${hb_comp}


На мой взгляд, если в файле superlib.hbp сделать строку

 цитата:
-olib/${hb_plat}/${hb_comp}/superlib


то все будет пучком :)

И еще такой вопрос: файл hbmk.cfg переименован в hbmk.hbc, а в дистрибутив он не положен.
Это сделано умышленно?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 207
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 07.06.11 15:31. Заголовок: Sikambr пишет: В Ha..


Sikambr пишет:

 цитата:
В Harbour rev.16855 заметил одну маленькую неточность в библиотеке SuperLib.
В файле superlib.hbp строка

цитата:
-olib/${hb_plat}/${hb_comp}/super


изменена на

цитата:
-o${hb_name}


а в файле superlib.hbc указано

цитата:
libpaths=lib/${hb_plat}/${hb_comp}


На мой взгляд, если в файле superlib.hbp сделать строку

цитата:
-olib/${hb_plat}/${hb_comp}/superlib


то все будет пучком :)



Что за неточность и что должно быть пучком можно подробней? (Только что собрал libsuperlib.a как сказано в readme.txt, есть несколько warning а так все норм.)

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 5
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 07.06.11 16:20. Заголовок: Прошу прощения, что ..


Прошу прощения, что не до конца объяснил ситуацию.

Если собрать superlib (как есть) и откомпилировать какой-нибудь prg-шник с superlib, например, как написано в readme:
hbmk2 myapp.prg superlib.hbc
то получим ошибку "cannot find -lsuperlib".
Для наглядности, можно добавить в myapp.prg строку:
? CurD()

А если в файле superlib.hbp изменить строку:
-o${hb_name}
на
-olib/${hb_plat}/${hb_comp}/superlib
собрать superlib, то myapp.prg компилится.

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 208
Зарегистрирован: 11.06.10
ссылка на сообщение  Отправлено: 08.06.11 08:34. Заголовок: Вот сегодня были изм..


Вот сегодня были изменения:
2011-06-08 00:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* examples/superlib/superlib.hbp
...
! synced libpaths in .hbp and .hbc files. it also means multitarget support


# $Id: superlib.hbp 16868 2011-06-07 22:29:10Z vszakats $
#

-hblib
-inc

-olib/${hb_plat}/${hb_comp}/${hb_name}

Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 6
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 13.06.11 12:35. Заголовок: Вывожу файлы в кодир..


Вывожу файлы в кодировке RU866 на принтер примерно так:
WIN_PRINTFILERAW( cPrinter, cFileName, "testing raw printing" )

На одних принтерах печатается нормально, на других кракозябрами.
Под Клиппером подгружали програмки, типа dosprn, но сейчас хотелось бы уйти от этого.

Идея такая:
1. перекодировать строки при формирования файла в Windows-кодировку
hb_Translate( cText,"RU866", "RU1251" )
2. распечатать файл

Пункт 1 реализовал, в пункте 2 затык. Печатаются кракозябры.
Как распечатать файл в кодировке Windows?

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 1787
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 13.06.11 20:31. Заголовок: Sikambr пишет: Печа..


Sikambr пишет:

 цитата:
Печатаются кракозябры.


Как печатаешь ? Покажи код !

Их хелпера по хХарбору:
PrintFileRaw() - Prints a file to a Windows printer in RAW mode


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 7
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 14.06.11 05:26. Заголовок: Как печатаешь ? Пок..



 цитата:
Как печатаешь ? Покажи код !


Создается файл, а затем он печатается функцией WIN_PRINTFILERAW.
Если файл в кодировке RU866, то на неруссифицированных принтерах печатаются кракозябры (нужно подгружать всякие dosprn-ы).
Вот я и хотел, перекодировать файл в RU1251. Ведь Notepad печатает русский текст нормально.
Только как распечатать файл в кодировке RU1251?

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 8
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 21.06.11 08:37. Заголовок: Написал две функции ..


Написал две функции печати DOS файла и строки через Win_Prn() с разбивкой на строки и страницы.
Может кому пригодиться.
Компилим так: harbour winprint.prg hbwin.hbc hbct.hbc
Еще нужно создать файл winprint.txt в DOS кодировке.
Сам исходник: Скрытый текст


Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 9
Зарегистрирован: 19.05.11
ссылка на сообщение  Отправлено: 21.06.11 14:40. Заголовок: Хотел спросить, что ..


Хотел спросить, что есть 3-й параметр-массив в методе oPrinter:SetFont
oPrinter:SetFont('Courier New', 10,{4,-50})
Первые два понятно (имя и размер шрифта), а вот 3-й в хелпах так и не смог найти.

Еще хотел спросить, как узнать путь к экзешнику?
Ну и заодно, значение переменной среды окружения (например SET TEMP=)?

Спасибо!

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Пост N: 227
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.06.11 14:55. Заголовок: Sikambr пишет: oPri..


Sikambr пишет:

 цитата:
oPrinter:SetFont('Courier New', 10,{4,-50})
Первые два понятно (имя и размер шрифта), а вот 3-й в хелпах так и не смог найти.


Посмотрел в коде и нашел такое описание:

 цитата:
METHOD SetFont( cFontName, nPointSize, xWidth, nBold, lUnderline, lItalic, nCharSet, lManualSize )
// NB: xWidth is in "CharactersPerInch"
// _OR_ { nMul, nDiv } which equates to "CharactersPerInch"
// _OR_ ZERO ( 0 ) which uses the default width of the font
// for the nPointSize
// IF xWidth (or nDiv) is < 0 then Fixed font is emulated


Может, поможет

Спасибо: 1 
ПрофильЦитата Ответить
moderator




Пост N: 228
Зарегистрирован: 11.02.10
ссылка на сообщение  Отправлено: 21.06.11 14:58. Заголовок: Sikambr пишет: Еще ..


Sikambr пишет:

 цитата:
Еще хотел спросить, как узнать путь к экзешнику?


Использовать функцию
FUNCTION EXENAME()
RETURN HB_PROGNAME()

Sikambr пишет:

 цитата:
Ну и заодно, значение переменной среды окружения (например SET TEMP=)?


Использовать функцию
GetE()

Спасибо: 1 
ПрофильЦитата Ответить
постоянный участник


Пост N: 509
Зарегистрирован: 25.12.07
ссылка на сообщение  Отправлено: 21.06.11 15:45. Заголовок: gfilatov2002 пишет: ..


gfilatov2002 пишет:

 цитата:

 цитата:
METHOD SetFont( cFontName, nPointSize, xWidth, nBold, lUnderline, lItalic, nCharSet, lManualSize )
// NB: xWidth is in "CharactersPerInch"
// _OR_ { nMul, nDiv } which equates to "CharactersPerInch"
// _OR_ ZERO ( 0 ) which uses the default width of the font
// for the nPointSize
// IF xWidth (or nDiv) is < 0 then Fixed font is emulated


Может, поможет



WinAPI-функции CreateFont и CreateFontIndirect не имеют параметра просто "размер шрифта". Высота и ширина задаются отдельно двумя параметрами. Вполне можно задавать, например, высоту там 200, а ширину 4, будет забавный очень высокий и худой шрифт При использовании только одного размера, высота и ширина вычисляются обычно так:

nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72); а в nWidth передается 0, что подразумевает умолчательную для этого шрифта ширину.

В HB_FUNC_STATIC( CREATEFONT ) из win32prn.prg видно, что nPointSize так и используется:

iHeight = -MulDiv(iHeight, GetDeviceCaps(hDC, LOGPIXELSY), 72);

xWidth два параметра используются для корректировки ширины:

if (iDiv )
{
iWidth = MulDiv(abs(iMul), GetDeviceCaps(hDC,LOGPIXELSX), abs(iDiv)) ;
}
else
{
iWidth = 0 ; // Use the default font width
}



Спасибо: 1 
ПрофильЦитата Ответить



Пост N: 35
Зарегистрирован: 03.01.10
ссылка на сообщение  Отправлено: 01.07.11 10:48. Заголовок: Вставляю свой пятак...


Вставляю свой пятак. Нужно было сделать настройку для пользователя по изменению высоты и
ширины шрифта. По умолчанию {3,-50}, я пропорционально менял вторую цифру -60 -70 и т д.
В принципе своего добился. Насколько я понимаю ширина определяется так
50 /3 = 16.7 п/дюйм. Знак "-" означает то ли "моноширинность" , то ли еще что-то, не помню.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 79
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет