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





Пост 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()
и некоторые другие...

Поделитесь инфой - кто что знает!

Спасибо: 0 
Профиль
Ответов - 33 , стр: 1 2 All [только новые]







Пост N: 84
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 12.12.06 13:03. Заголовок: Re:


А что разве никто не использует FT_MINIT?

Спасибо: 0 
Профиль





Пост 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


Спасибо: 0 
Профиль
Администратор




Пост N: 448
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 12.12.06 14:06. Заголовок: Re:


ort пишет:

 цитата:
А что разве никто не использует FT_MINIT?



Интересный вопрос

Я смотрю эти сырцы nanfor были залиты еще в 2003-м году уже в таком виде
То есть вместо вызовов дос были вставлены вызовы харбора, но некорректно -
функции стали возвращать значения других типов
Теперь надо править


Спасибо: 1 
Профиль





Пост N: 86
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 12.12.06 15:48. Заголовок: Re:


Погулял я по mouse1.prg - впечатление такое, что мышь из libnf никто не использует.
А как можно иначе?

Спасибо: 0 
Профиль





Пост N: 88
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 18.12.06 16:24. Заголовок: Re:


Паша, а KbdStat() никак не реагирует на Alt-клавиши. Как быть?

Спасибо: 0 
Профиль





Пост N: 89
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 18.12.06 16:28. Заголовок: Re:


Pasha пишет:

 цитата:
3) KEYSEND

Она же работает со скэнкодами. Лучше использовать __Keyboard



Паша, а мне как раз нужны скэнкоды

Спасибо: 0 
Профиль
Администратор




Пост 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


Спасибо: 1 
Профиль





Пост N: 90
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 18.12.06 17:48. Заголовок: Re:


Паша, спасибо за все ответы!
А как дела с nanfor.lib? Что-нибудь удастся сделать?

Спасибо: 0 
Профиль
Администратор




Пост N: 459
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 18.12.06 18:01. Заголовок: Re:


У меня сейчас нет времени этим заниматься
Там похоже просто заменены все вызовы FT_INT86 для 0x33, частично некорректно
надо пройтись по всем веткам и проверить
И найти аналоги в win32 некоторым вещам, например к-во кнопок, тип мышки
А если найти не удастся то поставить хоть что-нибудь чтобы не было вылета
Это модуль contrib\libnf\mouse.c

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




Пост 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


Спасибо: 1 
Профиль





Пост N: 95
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 22.12.06 10:38. Заголовок: Re:


Андрей, спасибо за идею, но моей проблемы это полностью не решает.
Харбор, как и Клиппер, не различает, например, End и Ctrl-F.
С помощью KeySend() это сделать проще простого - поскольку сканкоды у них разные.
Мне же нужно занести в буфер клавиатуры именно нажатие End...

Спасибо: 0 
Профиль
Администратор




Пост 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

и пересобрать весь харбор
свои программы надо тоже собирать с этим флагом

Спасибо: 1 
Профиль





Пост N: 97
Зарегистрирован: 06.06.06
ссылка на сообщение  Отправлено: 22.12.06 11:33. Заголовок: Re:


Паша, пересобирать Харбор - я еще не дорос до этого!


Спасибо: 0 
Профиль
Ответов - 33 , стр: 1 2 All [только новые]
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 148
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет