Автор | Сообщение |
|
| |
Пост N: 5
Зарегистрирован: 24.04.13
|
|
Отправлено: 17.05.13 14:48. Заголовок: Замена Inkeytrap()
В clipper tools есть функция inkeytrap(), расширяющая возможности inkey() ? Если аналог inkeytrap() в Harbour ? Или как сделать, чтобы при ожидании нажатия inkey() обрабатывались события, заданные SET KEY..... ?
|
|
|
Ответов - 9
[только новые]
|
|
|
| постоянный участник
|
Пост N: 351
Зарегистрирован: 13.10.05
|
|
Отправлено: 17.05.13 17:45. Заголовок: У меня в главном фай..
У меня в главном файле написано цитата: | SET KEY -40 TO Calck() SET KEY -41 TO pRekct() |
| Калькулятор , печать из любого места программы. А дальше сплошные ожидания (KEY:=INKEY(0)) В меня, в get, brows. Но KEY обрабатываю. В зависимости, что нажато, соответствующая реакция.
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 24.04.13
|
|
Отправлено: 22.05.13 11:32. Заголовок: Vlad04 не понял отве..
Vlad04 не понял ответа. всё равно -40 и -41 обрабатывает. Функции Calck() и pRekct() не вызываются.
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 21.04.13
|
|
Отправлено: 22.05.13 12:37. Заголовок: h_inkey было описано у Рика Спенса
что-то навроде этого //----------------------------h_inkey()---------- FUNCTION h_inkey(q) // inkey with SETKEY Local h_key,lkey,key_bl DO WHILE .T. h_key=.F. IF q=NIL;lkey=inkey();ELSE;lkey=inkey(q);ENDIF IF lkey!=0.AND.(key_bl:=setkey(lkey))!=NIL eval(key_bl,procname(2),procline(2),"");h_key=.T. ENDIF IF !h_key;EXIT;ENDIF ENDDO return lkey
|
|
|
|
| Администратор
|
Пост N: 2877
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.05.13 12:53. Заголовок: azoo пишет: Если ан..
azoo пишет: цитата: | Если аналог inkeytrap() в Harbour ? |
| В xHarbour эти функции уже реализованы. Можно оттуда взять модуль source\ct\trapkey.prg
|
|
|
|
| |
Пост N: 7
Зарегистрирован: 24.04.13
|
|
Отправлено: 22.05.13 15:23. Заголовок: Pasha может лучше xH..
Pasha может лучше xHarbour использовать ? Получается в xHarbоur лучше реализован CT. В принципе мне всё равно каким пользоваться, поскольку раньше не пользовался им. Уже научился как Harbour-ом компилировать, цитата: | @set HB_INSTALL=c:\hb30 %HB_INSTALL%\bin\harbour %1.prg -i%HB_INSTALL%\include bcc32 -O2 -d -I%HB_INSTALL%\include -L%HB_INSTALL%\lib\win\bcc %1.c hbdebug.lib hbvm.lib hbrtl.lib gtwin.lib hbcpage.lib hblang.lib hbrdd.lib hbmacro.lib hbpp.lib ace32.lib rddads.lib rddntx.lib rddcdx.lib rddfpt.lib hbsix.lib hbcommon.lib hbct.lib |
| такой батник для xHarbour не подошёл.
|
|
|
|
| Администратор
|
Пост N: 2878
Зарегистрирован: 23.05.05
|
|
Отправлено: 22.05.13 16:10. Заголовок: azoo пишет: Pasha м..
azoo пишет: цитата: | Pasha может лучше xHarbour использовать ? Получается в xHarbоur лучше реализован CT. |
| Не думаю, что лучше. Наличие одной редкой функции - не показатель. В xHarbour последние несколько лет было очень мало изменений в ct, в отличие от Harbour. А этот модуль легко перенести в Harbour, наверное, просто он никому не бросился в глаза.
|
|
|
|
| |
Пост N: 9
Зарегистрирован: 24.04.13
|
|
Отправлено: 23.05.13 16:12. Заголовок: Function InkeyTrap( ..
цитата: | Function InkeyTrap( nDelay ) Local nKey := INKEY( 0 ) Local bKeyBlock HB_SYMBOL_UNUSED( nDelay ) IF nKey # 0 .and. ( bKeyBlock := SETKEY( nKey ) ) <> NIL EVAL( bKeyBlock, PROCNAME(1), PROCLINE(1), "" ) ENDIF Return nKey |
| Что значит строка "HB_SYMBOL_UNUSED( nDelay )" ?
|
|
|
|
| |
Пост N: 3166
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.05.13 16:47. Заголовок: azoo STD.CH #defin..
azoo STD.CH #define HB_SYMBOL_UNUSED( symbol ) ( ( symbol ) )
|
|
|
|
| |
Пост N: 10
Зарегистрирован: 24.04.13
|
|
Отправлено: 24.05.13 10:15. Заголовок: Данная функция не со..
Данная функция не совсем такая как в Clipper. При нажатии на запрограммированную клавишу функция вызывается, но и срабатывает сама inkey, т.е. возвращается код в буфер обмена. Мне кажется так будет лучше: цитата: | Function InkeyTrap( nDelay ) Local nKey, bKeyBlock while .t. nKey := INKEY( nDelay ) IF nKey # 0 .and. ( bKeyBlock := SETKEY( nKey ) ) <> NIL EVAL( bKeyBlock, PROCNAME(1), PROCLINE(1), "" ) ELSE exit ENDIF end Return nKey |
| цитата: | #define HB_SYMBOL_UNUSED( symbol ) ( ( symbol ) ) |
| не могу понять смысл этого переназначения
|
|
|
|