Библиотеки: Easy Canvas - страница 19

 

После использования вашего кода хотел бы предложить несколько улучшений. Математические функции пересекаются по именам с моими - возможно, стоит их переименовать. Также ваши макросы отменяют определение в конце, что может вызвать проблемы в моём коде, если я использую такие же определения. И последнее - было бы хорошо снимать определение перед объявлением OnChartEvent, это устранит предупреждение о повторном определении (если функция уже была определена до подключения вашего файла).

//+------------------------------------------------------------------+
int MyCeil (const double x) {
   return (x-(int)x>0)?(int)x+1:(int)x;
}
//+------------------------------------------------------------------+
int MyRound(const double x) {
   return (int)(x+((x>0)?0.5:-0.5));
}
//+------------------------------------------------------------------+
int MyFloor(const double x) {
   return (x>0)?(int)x:((int)x-x>0)?(int)x-1:(int)x;
}
#define Ceil  MyCeil
#define Round  MyRound
#define Floor  MyFloor

...........

//+------------------------------------------------------------------+
#undef OnChartEvent
#define OnChartEvent SetOnChart(int x) {OnChart=true;  OnZ=false;}\
void MyChartEvent

#undef Ceil
#undef Round
#undef Floor
#undef _Font
 
hini #:

После использования вашего кода хотел бы предложить несколько улучшений. Математические функции пересекаются по именам с моими - возможно, стоит их переименовать. Также ваши макросы отменяют определение в конце, что может вызвать проблемы в моём коде, если я использую такие же определения. И последнее - было бы хорошо снимать определение перед объявлением OnChartEvent, это устранит предупреждение о повторном определении (если функция уже была определена до подключения вашего файла).

Данная библиотека создавалась 7 лет назад до моего 5-летнего образования в сфере software engineer.  Сейчас бы я совсем по другому написал эту библиотеку. Как минимум использовал бы пространство имен namespace. 
То, что Вы просите, я не могу сделать, так как это поломает много существующего кода моего и других людей, которые используют эту библиотеку.
Попробуйте у себя начать использовать namespace. 

 
Nikolai Semko #:
Данная библиотека создавалась 7 лет назад до моего 5-летнего образования в сфере software engineer.  Сейчас бы я совсем по другому написал эту библиотеку. Как минимум использовал бы пространство имен namespace. 
То, что Вы просите, я не могу сделать, так как это поломает много существующего кода моего и других людей, которые используют эту библиотеку.
Попробуйте у себя начать использовать namespace. 

100500 программистов, будут искренне перед сном Вас благодарить, если Вы сделаете качественную библиотеку Easy Canvas 2

Очень надо, а знаний не хватает, что бы самому сделать....
 
Vladimir Pastushak #:

100500 программистов, будут искренне перед сном Вас благодарить, если Вы сделаете качественную библиотеку Easy Canvas 2

Очень надо, а знаний не хватает, что бы самому сделать....

Владимир, Ренат сказал недавно, что будут внедрять Blend2D в терминале и в редакторе. 
А это значит, что эта библиотека уже станет рудиментом. Главное чтобы их намерение не превратилось в долгострой. 

Blend2D
Blend2D
  • blend2d.com
2D Vector Graphics Engine
 
Vladimir Pastushak #:

100500 программистов, будут искренне перед сном Вас благодарить, если Вы сделаете качественную библиотеку Easy Canvas 2

Очень надо, а знаний не хватает, что бы самому сделать....

А соберите-ка с этих 100500 программистов по $1 хотя бы, тогда Николай вероятно и сделает. А пока звучит примерно так: "Николай, ты поработай над новой биб-кой, а потом мы тебе скажем спасибо!"  ))

Качественная биб-ка для графики дорогого стоит. К примеру, написал один автор много статей про подобное дело. И где эта биб-ка? Работает через пень-колоду, поэтому не популярна...

 
Nikolai Semko #:

Это сделано для контроля множества подокон и множества экземпляров iCanvas. Ведь окна могут довавляться и удаляться в процессе работы индикатора.
Например, для этого индикатора это необходимо:

https://www.mql5.com/ru/code/25414

Обьект создается практически первым, что приводит к тому что если после были созданы еще обьекты то они перекрывают обьект библиотеки.

 
Vladimir Pastushak #:

Обьект создается практически первым, что приводит к тому что если после были созданы еще обьекты то они перекрывают обьект библиотеки.

Ну да. Так и должно быть. А в чем проблема?
Если надо менять Z-индекс, то нужно пересоздавать объекты в нужной последовательности
 
Nikolai Semko #:
Ну да. Так и должно быть. А в чем проблема?
Если надо менять Z-индекс, то нужно пересоздавать объекты в нужной последовательности

Благодарю, подумал об этом уже апосля...