Страница 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 к региону

Код: Выделить всё

..., CURSOR('hand.cur')
все норм., пока внезапно не двигаем мышью с нажатой и удерживаемой в таком положении кнопкой за пределы региона)), придется в событиях региона при входе/выходе 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 на все кнопки, прикольно...
согласен, про темы пользователя я понял еще из первого примечания :wink: ,
про {Prop:Cursor} - думаю с ним будет более элегантно все выглядеть в коде, можно не присваивать пользовательский курсор региону по умолчанию, а просто аккуратно отрабатывать все события в регионе, но сам пока не пробовал и поэтому не стал писать тут,
ну а вообще про темы/внешний вид и прочее - да, пользователи "отпечаток" накладывают - например, зная что мои не будут/не смогут/не захотят в 99% состава менять установленное по дефолту - просто не парюсь с этими нюансами, "всплывет" вопрос - будем решать... :mrgreen:

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 :idied: , то просто сразу в свойствах региона дописал нужный курсор по дефолту типа, а при выходе начал обрабатывать, кстати есть вариант по дизайну - не как у сбера с рукой, а поставить или двутавровую вертикальную черту или со стрелочками север-юг вертикальную - если делать как продолжение строки ввода закрытого 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:56
ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК :(
В CW6 Cursor:Hand просто забыли прописать в Libsrc.
да, просто лень править :lol:
надо добавить в equates.clw:

Код: Выделить всё

CURSOR:Hand       EQUATE ('<0FFH,01H,8AH,7FH>')