Keycode() не работает в IDLE процедуре
Добавлено: 20 Ноябрь 2019, 14:09
ИМХО: "гладко" и естественно реализуемо шаблоном, подключаемым во Frame и в каждом контролируемом окне.
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
ИМХО: "гладко" и естественно реализуемо шаблоном, подключаемым во Frame и в каждом контролируемом окне.
Неа, не все.Губин Игорь писал(а): 20 Ноябрь 2019, 12:45Всё в ОКНЕ можно контролировать сразу после ACCEPTvic7tar писал(а): 19 Ноябрь 2019, 20:14Так всё-таки, из одного места можно контролировать нажатие клавиш и клики мыши?
Умный, да?!finsoftrz писал(а): 20 Ноябрь 2019, 14:11Неа, не все.Некоторые вещи отрабатываются внутри accept. Поэтому и сабклассинг придумали, чтобы обойти.
А я и не спорю, я и говорил, что это самый простой путь. Но прежде я упомянул хуки, но на это нуль реакции. Если ТС-у сильно нужно - SetWindowsHookExA. Будет сложновато.Губин Игорь писал(а): 20 Ноябрь 2019, 14:09ИМХО: "гладко" и естественно реализуемо шаблоном, подключаемым во Frame и в каждом контролируемом окне.
У меня был подобный случай. Я сотворил шаблон с буферными переменными, в которые считывал постоянно содержимое и сравнивал. Аналогично тому, что показывал Юрий. Варианты для RTF и обычного различались. Но, поскольку шаблон делаем один раз...kreator писал(а): 20 Ноябрь 2019, 14:54ариант гладкой и естественной обработки набора текста в поле TEXT. ИМХО, здесь уже некая колизия
Вах, перед форумом и бутылкой равны все!
А что, когда молоденькие девушки все чаще начали меня на Вы называть и по имени-отчеству, вначале было непривычно, а потом даже понравилось. Причем я сам как-то на восприятие особо не различаю, что 10-20 лет назад с такими же общался, что сейчас. А потом приходит мысль, твои ровесницы с палочками под окнами гуляют, а ты все их бабульками древними воспринимаешь, кобелина... Ну, не до такой степени пока, конечно, но все к тому постепенно движется.
Мужику столько лет, сколько его самой молодой любовнице не на содержании!finsoftrz писал(а): 20 Ноябрь 2019, 15:47А что, когда молоденькие девушки все чаще начали меня на Вы называть и по имени-отчеству, вначале было непривычно, а потом даже понравилось. Причем я сам как-то на восприятие особо не различаю, что 10-20 лет назад с такими же общался, что сейчас. А потом приходит мысль, твои ровесницы с палочками под окнами гуляют, а ты все их бабульками древними воспринимаешь, кобелина... Ну, не до такой степени пока, конечно, но все к тому постепенно движется.
Код: Выделить всё
Loc:OldString Cstring(10000),STATIC
Loc:NewString CString(10000),STATIC
Loc:OldTime LONG(0),STATIC
....
Thread# = System{ Prop:Active }
Loc:NewString = ''
IF Thread#<>1
SetTarget( ,Thread# )
Key# = KeyCode()
LOOP Field# = FIRSTFIELD() TO LASTFIELD()
CASE Field#{Prop:Type}
OF 0
OF Create:Check
Loc:Use = Field#{Prop:Use}
Loc:NewString = Clip(Loc:NewString) & CLIP( Loc:Use )
ELSE
Loc:NewString = Clip(Loc:NewString) & CLIP(Field#{ PROP:ScreenText})
END
END
IF Loc:OldString <> Loc:NewString
Loc:OldTime = CLOCK()
END
Loc:OldString = Loc:NewString
0{Prop:Text} = 'Modified ' & Format( Loc:OldTime,'@t4') |
& ' Wait=' & Format( CLOCK() - Loc:OldTime, '@t4')
SetTarget()
END
...
Тоже не совсем то. А если пользователь ничего не меняет? А список просматривает? Или кнопки нажимает?Yufil писал(а): 20 Ноябрь 2019, 16:13 А всё-таки вариант с проверкой изменений Prop:ScreenText для каждого из полей текущего окна у меня катит.