Библиотеки: Класс СBmpButtonTransparent

 

Класс СBmpButtonTransparent:

Класс и примеры его использования разработаны для конкурса, организованного TheXpert.

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

Автор: Andrey Miguzov

 
Смотрю на код класса CBmpButton из стандартной библиотеки MQL5 и вижу сходство. Это случайно или какой то из этих классов послужил прототипом?
 
Konstantin Karpov:
Смотрю на код класса CBmpButton из стандартной библиотеки MQL5 и вижу сходство. Это случайно или какой то из этих классов послужил прототипом?
Да конечно - CBmpButton был взят за основу. И на 90 процентов переработан :) C помощью наследования пришлось чуть-чуть откорректировать и родительский класс CWndObj. Это сделано для совместимости со стандартной библиотекой.
 
Andrey Miguzov:
Да конечно - CBmpButton был взят за основу. И на 90 процентов переработан :) C помощью наследования пришлось чуть-чуть откорректировать и родительский класс CWndObj. Это сделано для совместимости со стандартной библиотекой.
Так а почему разработчики этот класс не внесут в свою стандартную библиотеку, ведь клас то нужный. Кстати не плохо бы полное его описание методов получить, а то приходится лезть в код и читать методы домысливая для чего они нужны...
 
Konstantin Karpov:
 Кстати не плохо бы полное его описание методов получить, а то приходится лезть в код и читать методы домысливая для чего они нужны...
Согласен. Добавлю, как время появится.
 

Пока вы не сделали описание, подскажите пожалуйста какой метод меняет положение графического объекта на графике. Метод Top(aLocation) из класса CWnd не меняет его. Но при этом меняется место клика как и положено, а сам графический объект остается на месте. Я так понимаю отсутствует привязка метки объекта и самого объекта? Или я что то вообще не понимаю...

В общем  разобрался, в классе CBmpButtonTransparent, открыл объект m_button и через его метод Y_Distance так же как и в Top вношу новую координату Y. Теперь все работает.

 
Konstantin Karpov:

Пока вы не сделали описание, подскажите пожалуйста какой метод меняет положение графического объекта на графике. Метод Top(aLocation) из класса CWnd не меняет его. Но при этом меняется место клика как и положено, а сам графический объект остается на месте. Я так понимаю отсутствует привязка метки объекта и самого объекта? Или я что то вообще не понимаю...

В общем  разобрался, в классе CBmpButtonTransparent, открыл объект m_button и через его метод Y_Distance так же как и в Top вношу новую координату Y. Теперь все работает.

Не - так не надо. Сейчас пример найду - сброшу. Во время конкурса сам эксперименты ставил :)

 

Просто метод перемещения к моему классу не относится - он реализован в стандартной библиотеке. 

Папку со всем содержимым в Experts.

В файле Profit_button см. строки 139-143 и 155-159

//Money.Shift(0,-3);
//Button.Shift(x,0);

Money.Move(Money.Left(),Money.Top()-3);
Button.Move(Button.Left()+x,Button.Top());

 Работает и так и так - в зависимости от целей. 

Перед запуском эксперта окно развернуть на весь экран :) 

Файлы:
Profit.zip  408 kb
 
Andrey Miguzov:

Не - так не надо. Сейчас пример найду - сброшу. Во время конкурса сам эксперименты ставил :)

 

Просто метод перемещения к моему классу не относится - он реализован в стандартной библиотеке. 

Папку со всем содержимым в Experts.

В файле Profit_button см. строки 139-143 и 155-159

 Работает и так и так - в зависимости от целей. 

Перед запуском эксперта окно развернуть на весь экран :) 

упс... :) а этот метод то я чего то просмотрел, искал-искал по всей помощи стандартной библиотеки и как говорится видел фигу :) спс...
 
Andrey Miguzov:

Перед запуском эксперта окно развернуть на весь экран :) 

Отличный пример!