Страница 2 из 3
Нажатая кнопка
Добавлено: 11 Сентябрь 2017, 14:24
RaFaeL
kreator писал(а): ↑10 Сентябрь 2017, 13:33А есть какая-то проблема? prop:Password не работает?
Так делал кто? Нужно чтобы менялось, пока зажата кнопка мыши. В два действия не пойдет
Нажатая кнопка
Добавлено: 11 Сентябрь 2017, 15:16
Yufil
Сделай регион с атрибутом imm, с подложенной под него картинкой. И лови Event:MouseUp и Event:MouseDown (он же Event:Accepted), меняя картинку, а через параметр BEVEL можно управлять выпуклостью и впуклостью....
Ещё хорошо сказать 0{Prop:Buffer}=1, потому как дёргается картинка
Нажатая кнопка
Добавлено: 11 Сентябрь 2017, 17:48
RaFaeL
Спасибо, сделал
Нажатая кнопка
Добавлено: 12 Сентябрь 2017, 12:16
kreator
Тоже сделал. Надо ещё не забыть отработать EVENT:MouseOut. И, чтобы было ощущение "глаз на самом Entry-поле" нужно поизвращаться с дизайном.
Нажатая кнопка
Добавлено: 12 Сентябрь 2017, 16:05
gopstop2007
В C10 вроде есть аналогичное - ?Image -> Enable active image
Нажатая кнопка
Добавлено: 12 Сентябрь 2017, 16:33
kreator
gopstop2007 писал(а): ↑12 Сентябрь 2017, 16:05
В C10 вроде есть аналогичное - ?Image -> Enable active image
Нет, это не то. Это замена кнопок имиджами, и провоцирование событий кнопки. А тут кнопка не нужна категорически. Тут нужно как раз отследить нажатие и отпуск. В общем, смысла нет для этих целей копать класс ActiveImage.
Нажатая кнопка
Добавлено: 14 Сентябрь 2017, 14:50
Ал
Yufil писал(а): ↑11 Сентябрь 2017, 15:16
Сделай регион с атрибутом imm, с подложенной под него картинкой. И лови Event:MouseUp и Event:MouseDown (он же Event:Accepted), меняя картинку, а через параметр BEVEL можно управлять выпуклостью и впуклостью....
Ещё хорошо сказать 0{Prop:Buffer}=1, потому как дёргается картинка
а через CURSOR можно поуправлять формой курсора мыши...
p.s. решил попробовать сам, если просто дописать в window к региону
все норм., пока внезапно не двигаем мышью с нажатой и удерживаемой в таком положении кнопкой за пределы региона)), придется в событиях региона при входе/выходе MouseIn/MouseOut за границы менять курсоры принудительно
Код: Выделить всё
SETCURSOR('~hand.cur')/SETCURSOR(CURSOR:Arrow)
Нажатая кнопка
Добавлено: 14 Сентябрь 2017, 18:29
Yufil
Не совсем правильно. Вместо Setcursor(Cursor:Arrow) надо просто SetCursor. А Вместо 'hand.cur' - cursor:hand, чтобы курсор корректно менялся вместе с настройками Уиндоуз...
Нажатая кнопка
Добавлено: 14 Сентябрь 2017, 19:57
Ал
Yufil писал(а): ↑14 Сентябрь 2017, 18:29
Не совсем правильно. Вместо Setcursor(Cursor:Arrow) надо просто SetCursor. А Вместо 'hand.cur' - cursor:hand, чтобы курсор корректно менялся вместе с настройками Уиндоуз...
может и неправильно так, но думаю если в тексте окна для региона ручками добавлена установка нестандартного курсора, например cursor:hand(если такой будет определен, например в winXP/cw6)\или из файлика 'hand.cur' (region...,imm,cursor('...')), то setcursor() просто снимет пред. и вернет заданное по умолчанию значение, т.е. думаю что в такой "обстановке" после setcursor() курсор мышки примет вид определенный ранее в windows...cursor()
Нажатая кнопка
Добавлено: 14 Сентябрь 2017, 21:39
Yufil
У меня были проблемы с Cursor:Arrow, дальше переключение курсора срабатывало как-то неправильно,вроде бы SetCursor(Cursor:Arrow) распространялось на все контролы, деталей не помню, давно было. Усвоил, что SetCursor без параметров предпочтительнее. Кроме того, Control{Prop:Cursor} = ... значительно лучше, чем SetCursor(...) .
И да, пользователь может установить свою тему (с большими курсорами, цветными и т.д.), ему наш курсор может и не понравиться
В некоторых проектах вешал cursor:hand на все кнопки, прикольно...
Нажатая кнопка
Добавлено: 15 Сентябрь 2017, 8:38
Ал
Yufil писал(а): ↑14 Сентябрь 2017, 21:39
У меня были проблемы с Cursor:Arrow, дальше переключение курсора срабатывало как-то неправильно,вроде бы SetCursor(Cursor:Arrow) распространялось на все контролы, деталей не помню, давно было. Усвоил, что SetCursor без параметров предпочтительнее. Кроме того, Control{Prop:Cursor} = ... значительно лучше, чем SetCursor(...) .
И да, пользователь может установить свою тему (с большими курсорами, цветными и т.д.), ему наш курсор может и не понравиться
В некоторых проектах вешал cursor:hand на все кнопки, прикольно...
согласен, про темы пользователя я понял еще из первого примечания
,
про {Prop:Cursor} - думаю с ним будет более элегантно все выглядеть в коде, можно не присваивать пользовательский курсор региону по умолчанию, а просто аккуратно отрабатывать все события в регионе, но сам пока не пробовал и поэтому не стал писать тут,
ну а вообще про темы/внешний вид и прочее - да, пользователи "отпечаток" накладывают - например, зная что мои не будут/не смогут/не захотят в 99% состава менять установленное по дефолту - просто не парюсь с этими нюансами, "всплывет" вопрос - будем решать...
ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК
Нажатая кнопка
Добавлено: 15 Сентябрь 2017, 9:46
Yufil
Вспомнил, в чём сущность проблемы
SetCursor(...) перекрывает курсоры для контролов.
Если, например, я сказал
Setcursor(Cursor:Wait) - то будут песочные часики или колёсико, невзирая на то, над каким контролом стоит указатель мыши.
Точно так же
SetCursor(Cursor:Arrow) отключит курсоры для контролов текущего окна. А вот SetCursor без параметров - не отключит...
Нажатая кнопка
Добавлено: 15 Сентябрь 2017, 9:48
Ал
Yufil писал(а): ↑15 Сентябрь 2017, 9:46Вспомнил, в чём сущность проблемы
SetCursor(...) перекрывает курсоры для контролов.
Если, например, я сказал
Setcursor(Cursor:Wait) - то будут песочные часики или колёсико, невзирая на то, над каким контролом стоит указатель мыши.
Точно так же
SetCursor(Cursor:Arrow) отключит курсоры для контролов текущего окна. А вот SetCursor без параметров - не отключит...
я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр)
но так как человек ленив по своей природе, а еще и программированием пытаюсь заниматься - т.е. ленив x2
, то просто сразу в свойствах региона дописал нужный курсор по дефолту типа, а при выходе начал обрабатывать, кстати есть вариант по дизайну - не как у сбера с рукой, а поставить или двутавровую вертикальную черту или со стрелочками север-юг вертикальную - если делать как продолжение строки ввода закрытого password слова - будет меньше "выпадать" из стиля?
Нажатая кнопка
Добавлено: 15 Сентябрь 2017, 9:56
Yufil
ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК
В CW6 (CW55, CW5, CW4....) Cursor:Hand просто забыли прописать в Libsrc.
я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр) -
Ну да, примерно так...
Нажатая кнопка
Добавлено: 15 Сентябрь 2017, 9:57
Ал
Yufil писал(а): ↑15 Сентябрь 2017, 9:56ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК
В CW6 Cursor:Hand просто забыли прописать в Libsrc.
да, просто лень править
надо добавить в equates.clw: