Вверх ↑
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
#1: 2009-06-04 22:41:24 ЛС | профиль | цитата
Нажмите на клавиатуре клавишу 2. Результат в редакторе только со второго тыка. Нажмите 1 - тоже самое. Если при запуске нажать 1 - то срабатывает сразу, но 2 снова с задержкой. Каким образом от этого избавиться? code_13599.txt
карма: 1

0
файлы: 1code_13599.txt [1.2KB] [173]
Разработчик
Ответов: 4698
Рейтинг: 426
#2: 2009-06-05 11:30:52 ЛС | профиль | цитата
Не обязательно использовать свойство onChar, оно почему-то не всегда выдает букву, поэтому и эффект только при втором нажатии. Вот так можно:
code_13601.txt
карма: 10
0
файлы: 1code_13601.txt [1.3KB] [159]
Ответов: 223
Рейтинг: 24
#3: 2009-06-05 11:41:29 ЛС | профиль | цитата
Может так подойдет
code_13602.txt
карма: 0

0
файлы: 1code_13602.txt [1.4KB] [139]
Разработчик
Ответов: 4698
Рейтинг: 426
#4: 2009-06-05 11:52:17 ЛС | профиль | цитата
wasya, не мне, конечно, судить, но переход между клавишами 1 и 2 сопровождается глюками на кнопках, это не очень красиво... А kamakama, наверное, судя по его схеме, хотел, чтоб без глюков (это был не упрек, а просто заметка)
карма: 10
0
Ответов: 223
Рейтинг: 24
#5: 2009-06-05 11:56:30 ЛС | профиль | цитата
Assasin, это было первое что попало мне в голову,твой вариант намного лучше,с уважением
карма: 0

0
Ответов: 875
Рейтинг: 322
#6: 2009-06-05 12:27:58 ЛС | профиль | цитата
Assasin, как раз желательно использовать onChar, по прикидке его использование позволит убрать примерно 150-170 элементов.
карма: 1

0
Разработчик
Ответов: 4698
Рейтинг: 426
#7: 2009-06-05 12:39:31 ЛС | профиль | цитата
Тогда чтоб без глюков надо так, я улучшил пример wasya :
code_13603.txt
------------ Дoбавленo в 12.41:
А вообще в таймере можно интервал и 1 поставить
карма: 10
0
файлы: 1code_13603.txt [1.4KB] [167]
Ответов: 223
Рейтинг: 24
#8: 2009-06-05 13:00:07 ЛС | профиль | цитата
Был еще и такой вариант
code_13604.txt
карма: 0

0
файлы: 1code_13604.txt [1.6KB] [119]
Ответов: 875
Рейтинг: 322
#9: 2009-06-05 13:02:18 ЛС | профиль | цитата
Assasin, wasya, спасибо.
------------ Дoбавленo в 15.30:
Все клавиши работают, но вот как развязать пробел, не соображу.


Add(MainForm,15366003,54,77)
{
Width=325
Height=270
Point(onChar)
Point(onKeyDown)
Point(doSetFocus)
Point(onKeyUp)
link(onChar,4308823:doTrim,[])
link(onKeyDown,13793558:doCase,[(101,111)(101,199)])
}
Add(Case,13793558,110,193)
{
Value=Integer(49)
link(onNextCase,7689435:doCase,[])
link(onTrue,16064507:doTimer,[])
}
Add(Button,6550763,237,151)
{
Left=86
Top=135
Width=61
Height=35
Caption="1"
Point(onKeyUp)
Point(doCaption)
Point(doSetFocus)
Point(onSetFocus)
}
Add(KeyEvent,13854656,578,251)
{
Code=32
}
Add(Hub,3376972,543,251)
{
InCount=3
link(onEvent1,13854656:doPress,[])
link(onEvent2,13854656:doPressDown,[])
}
Add(Memo,5748132,201,56)
{
Left=25
Top=15
Width=265
Height=100
Point(doSetSelect)
}
Add(Trim,4308823,124,98)
{
Char=" "
link(onTrim,5748132:doSetSelect,[])
}
Add(Case,7689435,238,193)
{
Value=Integer(50)
link(onNextCase,14039288:doCase,[])
link(onTrue,4787518:doTimer,[])
}
Add(Button,13536804,375,151)
{
Left=161
Top=135
Width=61
Height=35
Caption="2"
Point(onKeyUp)
Point(doCaption)
Point(doSetFocus)
Point(onSetFocus)
}
Add(Timer,16064507,154,200)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,7360996:doEvent1,[])
}
Add(Timer,4787518,286,200)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,1263500:doEvent1,[])
}
Add(Hub,1263500,334,200)
{
link(onEvent1,13536804:doSetFocus,[(361,206)(361,164)])
link(onEvent2,3376972:doEvent2,[(362,213)(362,264)])
}
Add(Hub,7360996,194,200)
{
link(onEvent1,6550763:doSetFocus,[(221,206)(221,164)])
link(onEvent2,3376972:doEvent3,[(221,213)(221,271)])
}
Add(Button,13193521,530,147)
{
Left=85
Top=185
Width=140
Height=40
Caption="probel"
Point(doSetFocus)
}
Add(Case,14039288,373,193)
{
Value=Integer(32)
link(onTrue,9097934:doTimer,[])
}
Add(Hub,11174902,488,200)
{
link(onEvent1,13193521:doSetFocus,[(517,206)(517,153)])
link(onEvent2,3376972:doEvent1,[(522,213)(522,257)])
}
Add(Timer,9097934,440,200)
{
Interval=10
Enable=1
AutoStop=1
link(onTimer,11174902:doEvent1,[])
}

карма: 1

0
Ответов: 223
Рейтинг: 24
#10: 2009-06-05 15:50:42 ЛС | профиль | цитата
Может,так
code_13605.txt
карма: 0

0
файлы: 1code_13605.txt [2.3KB] [125]
Ответов: 875
Рейтинг: 322
#11: 2009-06-05 16:03:11 ЛС | профиль | цитата
wasya, нужно четкое нажатие клавиш на форме. То есть нажал 1 - нажалась, ещё раз - все ОК. Нажал пробел - затем снова 1 или 2 появилась 1 или 2 через пробел. Но при этом клавиши должны визуально нажиматься.
карма: 1

0
Ответов: 223
Рейтинг: 24
#12: 2009-06-05 16:03:31 ЛС | профиль | цитата
Вот так наверное
code_13606.txt
карма: 0

0
файлы: 1code_13606.txt [2.3KB] [141]
Разработчик
Ответов: 4698
Рейтинг: 426
#13: 2009-06-05 16:04:10 ЛС | профиль | цитата
Нет, waysa, очень круто потом глючит, попробуй почередовать пробел а потом 1 и 2 Пробел использовать нежелательно, так как эта кнопка связана с нажатием и отпусканием элемента на котором фокус, вот и зависает. Вообще у тебя в эмуляторе клавиш(последний элемент в потоке при нажатии) использует код эмулированной клавиши 32 и его же ты опять и нажимаешь вот и происходит цикл Если по проще то ты жмешь пробел, в поток доходит код 32 идет ветка "32" эмулируется нажатие кода клавиши 32 и все заново...
------------ Дoбавленo в 16.05:
Опять у вас, wasya, есть глюки в схеме...
карма: 10
0
Ответов: 223
Рейтинг: 24
#14: 2009-06-05 16:05:19 ЛС | профиль | цитата
kamakama, извени посмотрю,сделаю що смогу
карма: 0

0
Ответов: 3851
Рейтинг: 159
#15: 2009-06-05 18:24:19 ЛС | профиль | цитата
вместо кнопок можно использовать панели - для визуального эффекта нажатия
карма: 0
начавший
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)