TheXpert: Да-да! Проблемка однако. В топик призываются komposter и tol64
Спасибо. Я не участвовал в конкурсе по причине, что работаю сейчас над очень большим проектом. Уже скоро он будет всем доступен. Там будет что обсудить и на его основе возможно тоже можно будет устраивать различные конкурсы. Больше подробностей пока дать не могу. )
Посмотрел – 5 балов :) Если пользователю не нужна стандартная библиотека – то Ваш вариант лучше.
Я, собственно, из-за чего так с этой библиотекой загоняюсь – у меня программа, с которой сейчас работаю, написана на её основе. Дизайн сильно топорный, хотел улучшить. А тут как раз конкурс – мне получилось очень в тему.
Из плюсов Вашей реализации:
1)Нет никаких костылей. У меня это и наследование стандартных классов и пр. радости для поддержки совместимости со стандартной библиотекой.
2)Статус кнопки и статус объекта на чарте совпадают.
3)В функциях присутствует контроль входных значений на предмет ошибок. Я это, кое-где, упустил из виду…
4)Кнопки в эксперте изящнее создаются (через вложенный цикл). Я, чёт, не додумался до этого.
5)Можно задать не только угол привязки графика, но и угол привязки кнопки. Честно – не знаю где это может пригодится :) но вдруг…
6)Картинок 6 шт используется. У меня 4.
7)CCanvas – можно на кнопке что-нибудь написать. Пару функций добавить и всё. Очень удобно в случае мультиязычности приложения. Мне придется опять костыли городить.
8)В Вашем коде гораздо быстрее можно разобраться.
Что заметил, из того что можно улучшить:
1)Если уменьшить чат, так чтобы кнопка была частично скрыта (снизу или сверху) – подсветка кнопки не сбрасывается (см. картинку).
2)Не увидел возможность создания “не западающих кнопок”. Т.е. которая запала и тут же отпала (ну по аналогии со стандартными).
3)У Вас значительно более сложный способ определения прозрачности. Даже не везде понял как он работает. Если картинки готовить самому, то проще сделать как у меня. Т.е. я просто извлекаю прозрачность из картинки функцией (спасибо за неё Integer):
Если указатель уходит за пределы окна, то не генерируется событие "перемещение мыши", а отсюда похоже и невозможность исправить сей баг.
В задании таких не было, хотя допилить труда большого не составит.
С прозрачностью мне кажется все проще: берем 2е точки (самую темную и самую светлую), средне значение будет пороговым. Если на картинке есть прозрачные места, то самый темный цвет сместится в сторону 0. Следовательно и пороговое значение тоже. Такое решение было принято в связи с тем, что одна и та же функция работает как с прозрачностью так и с отдельной маской. Отдельно хочу отметить - такой метод (отдельная маска) позволяет использовать картинки без прозрачности. Ну, может разработчик с графическим редактором не дружит :) Ну, или вариант с указанием цвета маски - как вариант указать белый цвет для зеленой кнопки и "он станет прозрачным", без дополнительных плясок с бубном около прозрачности и доп.масок.
Упс )
Я согласен с вариантом деребана и публичным обсуждением, полезнее всего будет.
Да-да! Проблемка однако. В топик призываются komposter и tol64
Спасибо. Я не участвовал в конкурсе по причине, что работаю сейчас над очень большим проектом. Уже скоро он будет всем доступен. Там будет что обсудить и на его основе возможно тоже можно будет устраивать различные конкурсы. Больше подробностей пока дать не могу. )
Ну, поехали :)
Мой пока проверяется... Как посмотрю отпишу..
Добавлено:
Вот и мой вариант появился :)
Посмотрел – 5 балов :) Если пользователю не нужна стандартная библиотека – то Ваш вариант лучше.
Я, собственно, из-за чего так с этой библиотекой загоняюсь – у меня программа, с которой сейчас работаю, написана на её основе. Дизайн сильно топорный, хотел улучшить. А тут как раз конкурс – мне получилось очень в тему.
Из плюсов Вашей реализации:
1) Нет никаких костылей. У меня это и наследование стандартных классов и пр. радости для поддержки совместимости со стандартной библиотекой.
2) Статус кнопки и статус объекта на чарте совпадают.
3) В функциях присутствует контроль входных значений на предмет ошибок. Я это, кое-где, упустил из виду…
4) Кнопки в эксперте изящнее создаются (через вложенный цикл). Я, чёт, не додумался до этого.
5) Можно задать не только угол привязки графика, но и угол привязки кнопки. Честно – не знаю где это может пригодится :) но вдруг…
6) Картинок 6 шт используется. У меня 4.
7) CCanvas – можно на кнопке что-нибудь написать. Пару функций добавить и всё. Очень удобно в случае мультиязычности приложения. Мне придется опять костыли городить.
8) В Вашем коде гораздо быстрее можно разобраться.
Что заметил, из того что можно улучшить:
1) Если уменьшить чат, так чтобы кнопка была частично скрыта (снизу или сверху) – подсветка кнопки не сбрасывается (см. картинку).
2) Не увидел возможность создания “не западающих кнопок”. Т.е. которая запала и тут же отпала (ну по аналогии со стандартными).
3) У Вас значительно более сложный способ определения прозрачности. Даже не везде понял как он работает. Если картинки готовить самому, то проще сделать как у меня. Т.е. я просто извлекаю прозрачность из картинки функцией (спасибо за неё Integer ):
И дальше сверяю её с пороговым уровнем (взял 250, но, конечно нужно функцию добавить, чтобы можно было задавать его):
Хотя, если работать с готовыми картинками, не открывая граф. редактор, то Ваш вариант, скорее всего, будет удобнее.
ЗЫ: Только что заметил, что в классе CCanvas тоже есть функция по определению прозрачности:
Спасибо. Сейчас Ваш гляну.
Что заметил, из того что можно улучшить: ...
Такое решение было принято в связи с тем, что одна и та же функция работает как с прозрачностью так и с отдельной маской.
Отдельно хочу отметить - такой метод (отдельная маска) позволяет использовать картинки без прозрачности. Ну, может разработчик с графическим редактором не дружит :)
Ну, или вариант с указанием цвета маски - как вариант указать белый цвет для зеленой кнопки и "он станет прозрачным", без дополнительных плясок с бубном около прозрачности и доп.масок.
Я вам там работу сделал... Жду респонса.
Спасибо участникам.
Да. Область кнопки на картинке это непрозрачная область.