Bibliotheken: Easy Canvas - Seite 2

 
MT4-Version hier
 
Version 1.16: Einige Bugs wurden behoben und einige Funktionen beschleunigt.
 
Version 1.21: einige Bugs behoben
 

Guten Tag.

Soll ich es hinzufügen? Weil es sich nicht erinnert )

void ChartChanged()
  {
   static int preWinTotal=W.WindowsTotal;
   if(W.Y_max==0 && CheckPointer(Canvas)!=POINTER_INVALID) {delete Canvas; Canvas=new iCanvas;}
   GetWindowProperties(W);
   if (preWinTotal!=W.WindowsTotal) for (int i=ArraySize(iC)-1; i>=0; i--) if(CheckPointer(iC[i])!=POINTER_INVALID) if (iC[i].SubWin>=W.WindowsTotal) iC[i].SubWin--;
   for (int i=ArraySize(iC)-1; i>=0; i--)
     {
      if(CheckPointer(iC[i])!=POINTER_INVALID)
         if(iC[i].FullWinCanvWidth())
           {
            if(iC[i].FullWinCanvHeight()) {if(W.Width!=WidOld || W.height[iC[i].SubWin]!=HeiOld[iC[i].SubWin] ) iC[i].Resize(W.Width,W.height[iC[i].SubWin]);}
            else {if(W.Width!=WidOld) iC[i].Resize(W.Width,iC[i].Height());}
           }
      else { if(iC[i].FullWinCanvHeight()) if(W.height[iC[i].SubWin]!=HeiOld[iC[i].SubWin]) {iC[i].Resize(iC[i].Width(),W.height[iC[i].SubWin]); HeiOld[iC[i].SubWin]=W.height[iC[i].SubWin];}}
      else ArrayRemove(iC,i,1);
     }
   WidOld=W.Width; 
   for(int i=ArraySize(iC)-1; i>=0; i--)        HeiOld[iC[i].SubWin] = W.height[iC[i].SubWin];
   preWinTotal=W.WindowsTotal;
   XYToTimePrice(0,0,W.MouseTime,W.MousePrice,CHARTEVENT_CHART_CHANGE);
  }
 
Oleksii Chepurnyi:

Guten Tag.

Soll ich es hinzufügen? Weil es sich nicht erinnert )

Danke!
Behoben in KB.
Bitte überprüfen Sie Ihren Code. Ich habe ihn repariert, ohne ihn zu überprüfen. Vielleicht habe ich etwas nicht beachtet.

void ChartChanged()
  {
   static int preWinTotal=W.WindowsTotal;
   if(W.Y_max==0 && CheckPointer(Canvas)!=POINTER_INVALID) {delete Canvas; Canvas=new iCanvas;}
   GetWindowProperties(W);
   if(preWinTotal!=W.WindowsTotal) for(int i=ArraySize(iC)-1; i>=0; i--) if(CheckPointer(iC[i])!=POINTER_INVALID) if(iC[i].SubWin>=W.WindowsTotal) iC[i].SubWin--;
   for(int i=ArraySize(iC)-1; i>=0; i--)
     {
      if(CheckPointer(iC[i])!=POINTER_INVALID)
         if(iC[i].FullWinCanvWidth())
           {
            if(iC[i].FullWinCanvHeight())
              {
               if(W.Width!=WidOld || W.height[iC[i].SubWin]!=HeiOld[iC[i].SubWin]) iC[i].Resize(W.Width,W.height[iC[i].SubWin]);
              }
            else {if(W.Width!=WidOld) iC[i].Resize(W.Width,iC[i].Height()); }
           }
      else
        {
         if(iC[i].FullWinCanvHeight())
            if(W.height[iC[i].SubWin]!=HeiOld[iC[i].SubWin]) iC[i].Resize(iC[i].Width(),W.height[iC[i].SubWin]);
        }
      else ArrayRemove(iC,i,1);
      HeiOld[iC[i].SubWin]=W.height[iC[i].SubWin];
     }
   WidOld=W.Width;
   preWinTotal=W.WindowsTotal;
   XYToTimePrice(0,0,W.MouseTime,W.MousePrice,CHARTEVENT_CHART_CHANGE);
  }
 
Nikolai Semko:

Danke!
Behoben in KB.
Bitte überprüfen Sie Ihren Code. Ich habe ihn ohne Überprüfung repariert. Vielleicht habe ich etwas nicht beachtet.

Jetzt ist alles in Ordnung)

Ich wollte fragen, was der Zweck des Hinzufügens des iC-Arrays ist?

 
Oleksii Chepurnyi:

Jetzt ist alles in Ordnung.)

Ich wollte fragen, was der Zweck des Hinzufügens des iC-Arrays ist?

Es wird getan, um eine Reihe von Unterfenstern und eine Reihe von iCanvas-Instanzen zu steuern. Schließlich können im Laufe der Arbeit des Indikators Fenster hinzugefügt und entfernt werden.
Für diesen Indikator ist dies zum Beispiel notwendig:

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

Система линейных алгебраических уравнений на каждом баре
Система линейных алгебраических уравнений на каждом баре
  • www.mql5.com
Данная работа преследует 3 цели: Продемонстрировать работу индикатора сразу в двух окнах: в главном и подокне. Это достигается с помощью применения класса iCanvas.Компактное решение системы линейных алгебраических уравнений с помощью рекурсии.Продемонстрировать и доказать некоторым искателям грааля несостоятельность утверждения, что применение...
 
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

Der Link wurde korrigiert - er führte zum Profil, aber dort ist er für alle geschlossen.
 
Artyom Trishkin:
Habe den Link korrigiert - er führte zum Profil und dort ist er für alle geschlossen.
Danke)))
 
Version 1.24: Einige Bugs wurden behoben.