Внимание, конкурс для программистов!

28 февраля 2015, 22:14
TheXpert
10
867

Итак, задание. Сделать реализацию кнопки как показано в видео:

 

Необходимо реализовать обработку подсветки и нажатия на кнопку.  

Обсуждение конкурса здесь -- https://www.mql5.com/ru/forum/41206 

Картинки для кнопки можно скачать здесь -- https://c.mql5.com/3/59/Images.zip 

Текст задания: 

Необходимо реализовать класс кнопки, позволяющий обрабатывать наведение мышки и нажатие на кнопку любой произвольно заданной формы.

Кнопка должна быть реализована на базе стандартного объекта OBJ_BITMAP_LABEL.

Для кнопки должны задаваться изображения для четырех состояний (обычная кнопка, подсвеченная, нажатая, нажатая подсвеченная)

Форма кнопки определяется анализом изображения для состояния по умолчанию (обычная кнопка). Кнопкой считается набор произвольных участков на изображении с ненулевой прозрачностью. Форма кнопки может быть сколь угодно сложной.

Реализация должна эффективно использовать память и вычислительные ресурсы. Должна корректно работать при привязке объекта к любому углу (OBJPROP_CORNER) на любом подокне графика.

Сам класс кнопки и сопутствующие классы должны легко и логично подключаемы к любому советнику, скрипту, индикатору.

Реализация должна позволять пользователю возможность расширения и изменения функционала без вмешательства в код самой реализации.

Совместимость со стандартной библиотекой необязательное условие.

Решение:

Решением считается исходный код реализации класса, исходный код тестового советника и исходные коды всех файлов, необходимых для успешной компиляции. Структура папок и файлов должна сохранена, чтобы можно было скопировать все одним махом и срау компилировать проект. Картинки присылать не надо.

Плюс к исходным кодам должен быть приложен скомпилированный (*.ex5 ) рабочий тестовый советник, который должен не иметь никаких зависимостей от других библиотек и dll и должен наглядно демонстрировать реализованный функционал.

Рекомендуется (но не обязательно) использовать те же картинки, что и в видео, с таким же расположением. По той простой причине, что на видео видна реакция кнопок в тех местах, где прямоугольные области кнопок накладываются друг на друга. Если используются свои картинки, очень желательно продемонстрировать как ведут себя кнопки при наложении областей картинок.

Победитель:

Участники конкурса должны прислать решения не позднее 15 марта 2015 года. Решения необходимо присылать мне с помощью личных сообщений. Если будет прислано несколько решений одним участником, принято будет последнее.

После 15 марта все решения всех участников будут опубликованы.

Победитель будет выбран среди участников голосованием самих участников. Каждый участник должен будет назвать самую лучшую по его мнению чужую реализацию.

Если кто-то не из участников желает участвовать в оценке и голосовании, пишите в личку.

Победивший по результатам голосования получит приз в 100 кредитов.

Поделитесь с друзьями: