Bibliotheken: Easy Canvas - Seite 19

 

Nachdem ich Ihren Code verwendet habe, möchte ich ein paar Verbesserungen vorschlagen. Die mathematischen Funktionen überschneiden sich im Namen mit meinen - vielleicht sollte ich sie umbenennen. Außerdem heben Ihre Makros die Definition am Ende auf, was in meinem Code zu Problemen führen könnte, wenn ich die gleichen Definitionen verwende. Eine letzte Sache - es wäre gut, die Definition zu entfernen, bevor OnChartEvent deklariert wird, dies wird die Neudefinitionswarnung beseitigen (wenn die Funktion bereits definiert war, bevor Ihre Datei angehängt wurde).

//+------------------------------------------------------------------+
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 deklariert wird, dies wird die Neudefinitionswarnung beseitigen (wenn die Funktion bereits definiert war, bevor Ihre Datei angehängt wurde).
Diese Bibliothek wurde vor 7 Jahren erstellt, also vor meiner 5-jährigen Ausbildung als Software-Ingenieur. Ich würde diese Bibliothek heute ganz anders schreiben. Zumindest würde ich den Namespace verwenden.
Was Sie verlangen, kann ich nicht tun, da es eine Menge bestehenden Code von mir und anderen Leuten, die diese Bibliothek benutzen, zerstören würde.
Versuchen Sie, den Namespace an Ihrer Stelle zu verwenden.

 
Nikolai Semko #:
Diese Bibliothek wurde vor 7 Jahren erstellt, also vor meiner 5-jährigen Ausbildung zum Software-Ingenieur. Ich würde diese Bibliothek heute ganz anders schreiben. Zumindest würde ich den Namespace verwenden.
Ich kann nicht tun, was Sie verlangen, da es eine Menge bestehenden Code von mir und anderen Leuten, die diese Bibliothek verwenden, zerstören würde.
Versuchen Sie, den Namespace bei Ihnen zu verwenden.

100500 Programmierer werden Ihnen aufrichtig danken, bevor sie ins Bett gehen, wenn Sie eine qualitativ hochwertige Easy Canvas 2 Bibliothek erstellen.

Ich brauche es sehr, aber ich habe nicht genug Wissen, um es selbst zu machen....
 
Vladimir Pastushak #:

100500 Programmierer werden Ihnen aufrichtig danken, bevor sie ins Bett gehen, wenn Sie eine hochwertige Easy Canvas 2-Bibliothek erstellen.

Ich brauche sie sehr, aber ich habe nicht genug Wissen, um sie selbst zu erstellen....

Vladimir, Renat hat kürzlich gesagt, dass sie Blend2D im Terminal und im Editor implementieren werden .
Und das bedeutet, dass diese Bibliothek bereits ein Rudiment sein wird. Die Hauptsache ist, dass sie ihre Absicht nicht in eine lange Konstruktion verwandeln.

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

100500 Programmierer werden Ihnen aufrichtig danken, bevor sie ins Bett gehen, wenn Sie eine hochwertige Easy Canvas 2-Bibliothek erstellen.

Ich brauche es sehr, aber ich habe nicht genug Wissen, um es selbst zu machen....

Und sammeln Sie mindestens 1 $ von diesen 100500 Programmierern, dann wird Nikolay es wahrscheinlich tun. Inzwischen klingt es so: "Nikolay, du arbeitest an einer neuen Bibliographie, und dann werden wir dir danken!" ))

Eine Qualitätsbibliographie für Grafiken ist teuer. Ein Autor hat zum Beispiel eine Menge Artikel über einen solchen Fall geschrieben. Und wo ist diese Bibliographie? Sie arbeitet sich durch einen Stumpf, deshalb ist sie nicht populär....

 
Nikolai Semko #:

Dies geschieht, um mehrere Unterfenster und mehrere Instanzen von iCanvas zu steuern. Schließlich können im Laufe der Arbeit mit dem Indikator Fenster hinzugefügt und entfernt werden.
Zum Beispiel ist es für diesen Indikator notwendig:

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

Das Objekt wird praktisch als erstes erstellt, was dazu führt, dass wenn danach weitere Objekte erstellt werden, diese das Bibliotheksobjekt überlagern.

 
Vladimir Pastushak #:

Das Objekt wird fast als erstes erstellt, was bedeutet, dass, wenn danach weitere Objekte erstellt werden, diese das Bibliotheksobjekt überlappen.

Ja, so sollte es auch sein. Wo liegt das Problem?
Wenn Sie den Z-Index ändern wollen, müssen Sie die Objekte in der richtigen Reihenfolge neu erstellen
 
Nikolai Semko #:
Ja. So sollte es auch sein. Wo liegt das Problem?
Wenn Sie den Z-Index ändern wollen, müssen Sie die Objekte in der richtigen Reihenfolge neu erstellen

Danke, ich habe darüber nachgedacht.....