程序库: 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 年的软件工程师教育。 如果是现在,我会以非常不同的方式编写这个库。至少我会使用命名空间。
你的要求我做不到,因为这会破坏我和其他使用这个库的人的大量现有代码。
请尝试在你的地方开始使用命名空间。

 
Nikolai Semko #:
这个库是 7 年前创建的,当时我还没有接受过 5 年的软件工程师教育。 如果是现在,我会以非常不同的方式编写这个库。至少我会使用命名空间。
我不能按照你的要求去做,因为这会破坏我和其他使用这个库的人的大量现有代码。
请尝试在你的地方开始使用命名空间。

如果您能开发出高质量的 Easy Canvas 2 库,那么 100500 名程序员在睡觉前都会真诚地感谢您。

我非常需要它,但我自己没有足够的知识来制作它....。
 
Vladimir Pastushak #:

如果您能制作一个高质量的 Easy Canvas 2 库,那么 100500 名程序员在睡觉前都会衷心感谢您。

我非常需要它,但我自己没有足够的知识来制作它....。

Vladimir, Renat 最近,他们将在终端和编辑器中 实现Blend2D
这意味着这个库将成为一个雏形。最重要的是不要把他们的意图变成一个漫长的工程。

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

如果您能制作一个高质量的 Easy Canvas 2 库,那么 100500 名程序员在睡觉前都会衷心感谢您。

我非常需要它,但我自己没有足够的知识来制作它....。

如果能从这100500 名 程序员那里 收集到 至少 1 美元,Nikolay 可能就会去做了。与此同时,这听起来像这样:"尼古拉,你去做一个新书目,然后我们会感谢你!" ))

高质量的图形学书目价格不菲。例如,一位作者写了很多关于这种情况的文章。那么这个书目在哪里呢?它是通过一个树桩工作的,这就是为什么它不受欢迎....。

 
Nikolai Semko #:

这样做是为了控制多个子窗口和多个 iCanvas 实例。毕竟,在指标工作过程中可以添加和删除窗口。
例如,本指标就需要这样做:

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

该对象实际上是先创建的,这导致如果之后创建了更多对象,它们就会与库对象重叠。

 
Vladimir Pastushak #:

该对象几乎是最先创建的,这意味着如果之后创建了更多对象,它们会与库对象重叠。

对,就应该这样。有什么问题吗?
如果需要更改 Z 轴索引,就需要按照正确的顺序重新创建对象
 
Nikolai Semko #:
对,就该这样有什么问题吗?
如果需要更改 Z 轴指数,就必须按照正确的顺序重新创建对象

谢谢你,我事后想了想,.....