Вверх ↑
Этот топик читают: Гость
Ответов: 52
Рейтинг: 2
#1: 2011-03-11 15:38:37 ЛС | профиль | цитата
Всем привет! Такой вопрос: Возможно ли динамически менять набор картинок элемента ImgBtn? Необходимо, чтоб при запуске программы пользователь мог выбрать набор или набор указывался в ini-файле (по принципу скинов)
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Разработчик
Ответов: 26072
Рейтинг: 2122
#2: 2011-03-11 17:14:28 ЛС | профиль | цитата
Slider писал(а):
Возможно ли динамически менять набор картинок элемента ImgBtn?

Нет. В чем проблема отрисовать кнопки самому, по своему желанию
карма: 22

0
Ответов: 52
Рейтинг: 2
#3: 2011-03-12 13:48:29 ЛС | профиль | цитата
nesco, если рисовать картинку на кнопке, то при частом нажатии просматривается кнопка без картинки
если использовать картинку, как функцию кнопки - событие onclick происходит не при отпускании левой мыши, а при нажатии, что для кнопки не есть гуд
карма: 0

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#4: 2011-03-12 13:54:50 ЛС | профиль | цитата
Slider писал(а):
если использовать картинку, как функцию кнопки - событие onclick происходит не при отпускании левой мыши, а при нажатии, что для кнопки не есть гуд

А использовать MouseUp вместо OnClick религия не позволяет
------------ Дoбавленo в 13.54:
Slider писал(а):
если рисовать картинку на кнопке

Надо использовать onPaint и рисовать на контексте, а не на Handle, перехват контекста запретит штатную отрисовку, но не для стандартной кнопки
карма: 22

0
Ответов: 52
Рейтинг: 2
#5: 2011-03-12 14:22:16 ЛС | профиль | цитата
А использовать MouseUp вместо OnClick религия не позволяет

ну и смысл? Сделайте 2 одинаковых кнопко-картинко-элемента и попробуйте на первом элементе нажать левую мышу, сдвинуть мышь на второй и отпустить. Что получится? Вот то-то о оно.
но не для стандартной кнопки

а для какой?
карма: 0

0
Разработчик
Ответов: 26072
Рейтинг: 2122
#6: 2011-03-12 15:54:15 ЛС | профиль | цитата
Slider писал(а):
а для какой?

Стандартная кнопка вообще никак не редактируется, кроме самой системы. По этой кнопке все вопросы к мелкомягким, они так захотели. Отрисовать можно тот же ImgBtn, используя ее контекст, а остальные события останутся теми же самыми
------------ Дoбавленo в 15.53:
Slider писал(а):
Сделайте 2 одинаковых кнопко-картинко-элемента и попробуйте на первом элементе нажать левую мышу, сдвинуть мышь на второй и отпустить. Что получится? Вот то-то о оно

А что получится



Add(MainForm,2953706,112,126)
{
}
Add(IndexToChanel,13195464,266,182)
{
Point(Index)
link(onEvent2,4371792:doEvent,[])
link(Index,16247000:State,[])
}
Add(Debug,4371792,329,189)
{
}
Add(Switch,16247000,266,133)
{
DataOn=Integer(1)
DataOff=Integer(0)
Point(State)
Point(doOn)
}
Add(PaintBox,16638063,168,126)
{
Left=55
Top=55
Color=-16777214
Point(onMouseUp)
Point(onMouseLeave)
Point(onMouseEnter)
link(onMouseUp,13195464:doEvent,[(233,139)(233,188)])
link(onMouseLeave,16247000:doReset,[])
link(onMouseEnter,16247000:doOn,[])
}
Add(PaintBox,8372762,168,182)
{
Left=125
Top=55
Color=12639424
Point(onMouseUp)
Point(onMouseLeave)
Point(onMouseEnter)
}

карма: 22

0
Ответов: 871
Рейтинг: 322
#7: 2011-03-12 15:58:51 ЛС | профиль | цитата
А если так попробовать?
карма: 1

0
файлы: 1imgbtn-xxx.rar [20.4KB] [105]
Разработчик
Ответов: 26072
Рейтинг: 2122
#8: 2011-03-12 16:00:24 ЛС | профиль | цитата
kamakama писал(а):
А если так попробовать?

Отрисовка на Handle всегда чревата морганием
карма: 22

0
Ответов: 871
Рейтинг: 322
#9: 2011-03-12 16:05:15 ЛС | профиль | цитата
nesco, на безрыбье и рак рыба.
карма: 1

0
Ответов: 52
Рейтинг: 2
#10: 2011-03-12 16:21:51 ЛС | профиль | цитата
nesco, то бишь рисование на контексте... Тут понятно.
но всё-же в своем примере нажмите на второй картинке, переместите курсор на первую и отпустите мышу - я об этом говорил
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#11: 2011-03-12 16:40:28 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 04:37:25
карма: 0

0
Ответов: 52
Рейтинг: 2
#12: 2011-03-12 16:53:20 ЛС | профиль | цитата
178.123.49.144, на мой взгляд намного сложнее, чем иметь событие onclick, происходящее не по нажатии левой мыши, а по ее отпускании
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#13: 2011-03-12 16:59:02 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 04:37:26
карма: 0

0
Ответов: 52
Рейтинг: 2
#14: 2011-03-12 17:22:18 ЛС | профиль | цитата
твой код ничем не лучше
code_22927.txt (только часть схемы)
и в твоем и в моем случае - много лишнего, было бы проще
иметь событие onclick, происходящее не по нажатии левой мыши, а по ее отпускании

карма: 0

0
файлы: 1code_22927.txt [2.3KB] [110]
Разработчик
Ответов: 26072
Рейтинг: 2122
#15: 2011-03-12 17:30:08 ЛС | профиль | цитата
Slider писал(а):
иметь событие onclick, происходящее не по нажатии левой мыши, а по ее отпускании

Реализовать просто не получится, это событие обрабатывается в главном юните KOL и редакции не подлежит. Тут, либо делаем сами, любо заканчиваем пустые обсуждения. Как это сделать самому уже показали
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)