Нажатая кнопка
Добавлено: 11 Сентябрь 2017, 14:24
Так делал кто? Нужно чтобы менялось, пока зажата кнопка мыши. В два действия не пойдет
Место общения программистов, форум разработчиков БД на Clarion
https://forum.clarionlife.net/
Так делал кто? Нужно чтобы менялось, пока зажата кнопка мыши. В два действия не пойдет
Нет, это не то. Это замена кнопок имиджами, и провоцирование событий кнопки. А тут кнопка не нужна категорически. Тут нужно как раз отследить нажатие и отпуск. В общем, смысла нет для этих целей копать класс ActiveImage.gopstop2007 писал(а): 12 Сентябрь 2017, 16:05 В C10 вроде есть аналогичное - ?Image -> Enable active image
а через CURSOR можно поуправлять формой курсора мыши...Yufil писал(а): 11 Сентябрь 2017, 15:16 Сделай регион с атрибутом imm, с подложенной под него картинкой. И лови Event:MouseUp и Event:MouseDown (он же Event:Accepted), меняя картинку, а через параметр BEVEL можно управлять выпуклостью и впуклостью....
Ещё хорошо сказать 0{Prop:Buffer}=1, потому как дёргается картинка
Код: Выделить всё
..., CURSOR('hand.cur')
Код: Выделить всё
SETCURSOR('~hand.cur')/SETCURSOR(CURSOR:Arrow)
может и неправильно так, но думаю если в тексте окна для региона ручками добавлена установка нестандартного курсора, например cursor:hand(если такой будет определен, например в winXP/cw6)\или из файлика 'hand.cur' (region...,imm,cursor('...')), то setcursor() просто снимет пред. и вернет заданное по умолчанию значение, т.е. думаю что в такой "обстановке" после setcursor() курсор мышки примет вид определенный ранее в windows...cursor()Yufil писал(а): 14 Сентябрь 2017, 18:29 Не совсем правильно. Вместо Setcursor(Cursor:Arrow) надо просто SetCursor. А Вместо 'hand.cur' - cursor:hand, чтобы курсор корректно менялся вместе с настройками Уиндоуз...
согласен, про темы пользователя я понял еще из первого примечанияYufil писал(а): 14 Сентябрь 2017, 21:39 У меня были проблемы с Cursor:Arrow, дальше переключение курсора срабатывало как-то неправильно,вроде бы SetCursor(Cursor:Arrow) распространялось на все контролы, деталей не помню, давно было. Усвоил, что SetCursor без параметров предпочтительнее. Кроме того, Control{Prop:Cursor} = ... значительно лучше, чем SetCursor(...) .
И да, пользователь может установить свою тему (с большими курсорами, цветными и т.д.), ему наш курсор может и не понравиться![]()
В некоторых проектах вешал cursor:hand на все кнопки, прикольно...
я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр)Yufil писал(а): 15 Сентябрь 2017, 9:46Вспомнил, в чём сущность проблемыSetCursor(...) перекрывает курсоры для контролов.
Если, например, я сказал Setcursor(Cursor:Wait) - то будут песочные часики или колёсико, невзирая на то, над каким контролом стоит указатель мыши.
Точно так же SetCursor(Cursor:Arrow) отключит курсоры для контролов текущего окна. А вот SetCursor без параметров - не отключит...
В CW6 (CW55, CW5, CW4....) Cursor:Hand просто забыли прописать в Libsrc.ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК
Ну да, примерно так...я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр) -
да, просто лень правитьYufil писал(а): 15 Сентябрь 2017, 9:56В CW6 Cursor:Hand просто забыли прописать в Libsrc.ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК
Код: Выделить всё
CURSOR:Hand EQUATE ('<0FFH,01H,8AH,7FH>')