Автор | Сообщение |
|
| |
Пост N: 70
Зарегистрирован: 06.06.06
|
|
Отправлено: 07.12.06 17:48. Заголовок: Аналоги функций CT.LIB для Harbour
Привет всем на форуме! Помогите, пожалуйста с переходом на Harbour!!! Перерабатываю библиотеку своих функций под Harbour. Но вот проблема - нет некоторых используемых функции из Clipper Tools. В частности: 1) Millisec() 2) Random() 3) Keysend() 4) NumHigh() и NumLow() 5) KbdStat() и некоторые другие... Поделитесь инфой - кто что знает!
|
|
|
Ответов - 33
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 84
Зарегистрирован: 06.06.06
|
|
Отправлено: 12.12.06 13:03. Заголовок: Re:
А что разве никто не использует FT_MINIT?
|
|
|
|
| |
Пост N: 85
Зарегистрирован: 06.06.06
|
|
Отправлено: 12.12.06 13:06. Заголовок: Re:
Ошибка в FT_MGETPOS(): Error BASE/1132 Bound error: array access Arguments: ( [ 1] = Type: A Val: { Array of 2 Items } [ 2] = Type: N Val: 3) Error at ...: FT_MGETPOS(1007) in Module: mouse1.prg И еще ошибка в FT_MBUTPRS(): Error BASE/1132 Bound error: array access Arguments: ( [ 1] = Type: A Val: { Array of 0 Items } [ 2] = Type: N Val: 1) Error at ...: FT_MBUTPRS(1279) in Module: mouse1.prg
|
|
|
|
| Администратор
|
Пост N: 448
Зарегистрирован: 23.05.05
|
|
Отправлено: 12.12.06 14:06. Заголовок: Re:
ort пишет: цитата: | А что разве никто не использует FT_MINIT? |
| Интересный вопрос Я смотрю эти сырцы nanfor были залиты еще в 2003-м году уже в таком виде То есть вместо вызовов дос были вставлены вызовы харбора, но некорректно - функции стали возвращать значения других типов Теперь надо править
|
|
|
|
| |
Пост N: 86
Зарегистрирован: 06.06.06
|
|
Отправлено: 12.12.06 15:48. Заголовок: Re:
Погулял я по mouse1.prg - впечатление такое, что мышь из libnf никто не использует. А как можно иначе?
|
|
|
|
| |
Пост N: 88
Зарегистрирован: 06.06.06
|
|
Отправлено: 18.12.06 16:24. Заголовок: Re:
Паша, а KbdStat() никак не реагирует на Alt-клавиши. Как быть?
|
|
|
|
| |
Пост N: 89
Зарегистрирован: 06.06.06
|
|
Отправлено: 18.12.06 16:28. Заголовок: Re:
Pasha пишет: цитата: | 3) KEYSEND Она же работает со скэнкодами. Лучше использовать __Keyboard |
| Паша, а мне как раз нужны скэнкоды
|
|
|
|
| Администратор
|
Пост N: 458
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.12.06 17:19. Заголовок: Re:
ort пишет: цитата: | Паша, а KbdStat() никак не реагирует на Alt-клавиши. Как быть? |
| Это из-за терминала Зачем-то в source\rtl\gtwin.c закомментирована строка 2560 // if ( GetKeyState( VK_MENU ) & 0x080 ) kbdShifts += GTI_KBD_ALT; Если снять комментарий, то будет все ок, я проверил, правда левый и правый алт не различаются цитата: | Паша, а мне как раз нужны скэнкоды |
| Советую написать свою функцию KbdSend Сделать таблицу соответствия скэнкодов и кодов клиппера Static aTbl := {; {<скэнкод>, <код клавиши>},; ... } выполнять поиск в таблице и заносить код клавиши через __Keyboard
|
|
|
|
| |
Пост N: 90
Зарегистрирован: 06.06.06
|
|
Отправлено: 18.12.06 17:48. Заголовок: Re:
Паша, спасибо за все ответы! А как дела с nanfor.lib? Что-нибудь удастся сделать?
|
|
|
|
| Администратор
|
Пост N: 459
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.12.06 18:01. Заголовок: Re:
У меня сейчас нет времени этим заниматься Там похоже просто заменены все вызовы FT_INT86 для 0x33, частично некорректно надо пройтись по всем веткам и проверить И найти аналоги в win32 некоторым вещам, например к-во кнопок, тип мышки А если найти не удастся то поставить хоть что-нибудь чтобы не было вылета Это модуль contrib\libnf\mouse.c
|
|
|
|
| постоянный участник
|
Пост N: 193
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.12.06 22:19. Заголовок: Re:
Я сделал так. Вызов из программы везде заменить на myKEYSEND(KS_F7, K_F7) ************************** FUNCTION myKEYSEND(nSKey, nKey) #ifndef __HARBOUR__ KEYSEND(nSKey) #else HB_KeyPut(nKey) #endif
|
|
|
|
| |
Пост N: 95
Зарегистрирован: 06.06.06
|
|
Отправлено: 22.12.06 10:38. Заголовок: Re:
Андрей, спасибо за идею, но моей проблемы это полностью не решает. Харбор, как и Клиппер, не различает, например, End и Ctrl-F. С помощью KeySend() это сделать проще простого - поскольку сканкоды у них разные. Мне же нужно занести в буфер клавиатуры именно нажатие End...
|
|
|
|
|
| Администратор
|
Пост N: 462
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.12.06 11:10. Заголовок: Re:
Эту проблему можно решить по другому Надо пересобрать харбор с флагом HB_EXT_INKEY Тогда коды у K_END и K_CTRL_F будут разные, это касается и других пересекающихся кодов По кодам совместимости с клиппером не будет, но такая совместимость и не нужна Для этого надо в makefile.bc добавить к CFLAGS и HARBOURFLAGS этот define: CFLAGS = $(CFLAGS) -DHB_EXT_INKEY HARBOURFLAGS = $(HARBOURFLAGS) -dHB_EXT_INKEY и пересобрать весь харбор свои программы надо тоже собирать с этим флагом
|
|
|
|
| |
Пост N: 97
Зарегистрирован: 06.06.06
|
|
Отправлено: 22.12.06 11:33. Заголовок: Re:
Паша, пересобирать Харбор - я еще не дорос до этого!
|
|
|
Ответов - 33
, стр:
1
2
All
[только новые]
|
|