Нажатая кнопка

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Нажатая кнопка

Сообщение RaFaeL »

kreator писал(а): 10 Сентябрь 2017, 13:33А есть какая-то проблема? prop:Password не работает?
Так делал кто? Нужно чтобы менялось, пока зажата кнопка мыши. В два действия не пойдет
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Нажатая кнопка

Сообщение Yufil »

Сделай регион с атрибутом imm, с подложенной под него картинкой. И лови Event:MouseUp и Event:MouseDown (он же Event:Accepted), меняя картинку, а через параметр BEVEL можно управлять выпуклостью и впуклостью....

Ещё хорошо сказать 0{Prop:Buffer}=1, потому как дёргается картинка
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Нажатая кнопка

Сообщение RaFaeL »

Спасибо, сделал
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Нажатая кнопка

Сообщение kreator »

Тоже сделал. Надо ещё не забыть отработать EVENT:MouseOut. И, чтобы было ощущение "глаз на самом Entry-поле" нужно поизвращаться с дизайном.
We are hard at work… for you. :)
gopstop2007
✯ Ветеран ✯
Сообщения: 1702
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 9 раз
Поблагодарили: 4 раза

Нажатая кнопка

Сообщение gopstop2007 »

В C10 вроде есть аналогичное - ?Image -> Enable active image
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Нажатая кнопка

Сообщение kreator »

gopstop2007 писал(а): 12 Сентябрь 2017, 16:05 В C10 вроде есть аналогичное - ?Image -> Enable active image
Нет, это не то. Это замена кнопок имиджами, и провоцирование событий кнопки. А тут кнопка не нужна категорически. Тут нужно как раз отследить нажатие и отпуск. В общем, смысла нет для этих целей копать класс ActiveImage.
We are hard at work… for you. :)
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Нажатая кнопка

Сообщение Ал »

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)
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Нажатая кнопка

Сообщение Yufil »

Не совсем правильно. Вместо Setcursor(Cursor:Arrow) надо просто SetCursor. А Вместо 'hand.cur' - cursor:hand, чтобы курсор корректно менялся вместе с настройками Уиндоуз...
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Нажатая кнопка

Сообщение Ал »

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()
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Нажатая кнопка

Сообщение Yufil »

У меня были проблемы с Cursor:Arrow, дальше переключение курсора срабатывало как-то неправильно,вроде бы SetCursor(Cursor:Arrow) распространялось на все контролы, деталей не помню, давно было. Усвоил, что SetCursor без параметров предпочтительнее. Кроме того, Control{Prop:Cursor} = ... значительно лучше, чем SetCursor(...) .
И да, пользователь может установить свою тему (с большими курсорами, цветными и т.д.), ему наш курсор может и не понравиться :)
В некоторых проектах вешал cursor:hand на все кнопки, прикольно...
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Нажатая кнопка

Сообщение Ал »

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, всего редактировалось 1 раз.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Нажатая кнопка

Сообщение Yufil »

Вспомнил, в чём сущность проблемы :) SetCursor(...) перекрывает курсоры для контролов.
Если, например, я сказал Setcursor(Cursor:Wait) - то будут песочные часики или колёсико, невзирая на то, над каким контролом стоит указатель мыши.
Точно так же SetCursor(Cursor:Arrow) отключит курсоры для контролов текущего окна. А вот SetCursor без параметров - не отключит...
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Нажатая кнопка

Сообщение Ал »

Yufil писал(а): 15 Сентябрь 2017, 9:46Вспомнил, в чём сущность проблемы :) SetCursor(...) перекрывает курсоры для контролов.
Если, например, я сказал Setcursor(Cursor:Wait) - то будут песочные часики или колёсико, невзирая на то, над каким контролом стоит указатель мыши.
Точно так же SetCursor(Cursor:Arrow) отключит курсоры для контролов текущего окна. А вот SetCursor без параметров - не отключит...
я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр)
но так как человек ленив по своей природе, а еще и программированием пытаюсь заниматься - т.е. ленив x2 :idied: , то просто сразу в свойствах региона дописал нужный курсор по дефолту типа, а при выходе начал обрабатывать, кстати есть вариант по дизайну - не как у сбера с рукой, а поставить или двутавровую вертикальную черту или со стрелочками север-юг вертикальную - если делать как продолжение строки ввода закрытого password слова - будет меньше "выпадать" из стиля?
Последний раз редактировалось Ал 15 Сентябрь 2017, 9:56, всего редактировалось 1 раз.
Yufil
Ветеран движения
Сообщения: 1277
Зарегистрирован: 16 Май 2006, 14:34
Контактная информация:

Нажатая кнопка

Сообщение Yufil »

ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК :(
В CW6 (CW55, CW5, CW4....) Cursor:Hand просто забыли прописать в Libsrc.
я так понимаю: SetCursor() без параметров - восстанавливает дефолтный курсор - т.е. выключает "временный", заданный предыдущим SetCursor(параметр) -
Ну да, примерно так...
Ал
✯ Ветеран ✯
Сообщения: 1011
Зарегистрирован: 08 Июль 2005, 6:48
Откуда: Россия

Нажатая кнопка

Сообщение Ал »

Yufil писал(а): 15 Сентябрь 2017, 9:56
ps. да, забыл - у меня наблюдались проблемы с cursor:hand, причем только в cw6, в с10 при той же обстановке - все было ОК :(
В CW6 Cursor:Hand просто забыли прописать в Libsrc.
да, просто лень править :lol:
надо добавить в equates.clw:

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

CURSOR:Hand       EQUATE ('<0FFH,01H,8AH,7FH>')
Ответить