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



Пост N: 5
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 17.05.13 14:48. Заголовок: Замена Inkeytrap()


В clipper tools есть функция inkeytrap(), расширяющая возможности inkey() ?
Если аналог inkeytrap() в Harbour ?
Или как сделать, чтобы при ожидании нажатия inkey() обрабатывались события, заданные SET KEY..... ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 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 обрабатываю. В зависимости, что нажато, соответствующая реакция.

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



Пост N: 6
Зарегистрирован: 24.04.13
ссылка на сообщение  Отправлено: 22.05.13 11:32. Заголовок: Vlad04 не понял отве..


Vlad04 не понял ответа.


 цитата:
(KEY:=INKEY(0))

всё равно -40 и -41 обрабатывает. Функции Calck() и pRekct() не вызываются.



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



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


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




Пост N: 2877
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.05.13 12:53. Заголовок: azoo пишет: Если ан..


azoo пишет:

 цитата:
Если аналог inkeytrap() в Harbour ?



В xHarbour эти функции уже реализованы. Можно оттуда взять модуль source\ct\trapkey.prg

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



Пост 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 не подошёл.

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




Пост N: 2878
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 22.05.13 16:10. Заголовок: azoo пишет: Pasha м..


azoo пишет:

 цитата:
Pasha может лучше xHarbour использовать ?
Получается в xHarbоur лучше реализован CT.



Не думаю, что лучше. Наличие одной редкой функции - не показатель. В xHarbour последние несколько лет было очень мало изменений в ct, в отличие от Harbour. А этот модуль легко перенести в Harbour, наверное, просто он никому не бросился в глаза.

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



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

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




Пост N: 3166
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 23.05.13 16:47. Заголовок: azoo STD.CH #defin..


azoo
STD.CH

#define HB_SYMBOL_UNUSED( symbol ) ( ( symbol ) )

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



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



не могу понять смысл этого переназначения

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

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