Easy and Fast Gui, finde Fehler nicht

 

Hallo ich habe ein Problem, testweise hab ich ein Fenster mit ein Graph erstellt... zumindest ist das die Planung.

//+------------------------------------------------------------------+
//|                                                          GUI.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <EasyAndFastGUI\WndCreate.mqh>

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
class CProgram: public CWndCreate
  {
private:
   CWindow           m_window;
   CGraph            m_gra;


public:
   void              CreateGui()
     {
      CWndCreate::CreateWindow(m_window,"Test",20,20,300,300);
      CWndCreate::CreateGraph(m_gra,m_window,0,5,14,false,false,10,23,false,false,AXIS_TYPE_DATETIME,2.654,8.398);
      CWndEvents::CompletedGUI();

     }

   void              OnTimerEvent()
     {
      CWndEvents::OnTimerEvent();
     }

   void               OnInitEvent()
     {

     }

   void               OnTickEvent()
     {

     }

   void               OnDeinitEvent(const int reason)
     {
      CWndEvents::Destroy();
     }

   void              OnEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
     {


     }
  };

CProgram programm;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   programm.OnInitEvent();
   programm.CreateGui();

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   programm.OnDeinitEvent(reason);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   programm.OnTickEvent();
   programm.OnTimerEvent();

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   programm.OnTimerEvent();
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // Identifikator des Ereignisses
                  const long& lparam,   // Parameter des Ereignisses des Typs long
                  const double& dparam, // Parameter des Ereignisses des Typs double
                  const string& sparam  // Parameter des Ereignisses des Typs string
                 )
  {
   programm.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+

in der Datei WndCreate gibt es 2 möglichkeiten :

   bool              CreateGraph(CGraph &object,CElement &main,const int window_index,
                                 const int x,const int y,const bool auto_x_resize,const bool auto_y_resize,
                                 const int right_offset,const int bottom_offset,const bool is_right,const bool is_bottom,
                                 ENUM_AXIS_TYPE axis_type,DoubleToStringFunction func_x_axis,DoubleToStringFunction func_y_axis);
                                 
   bool              CreateGraph(CGraph &object,CElement &main,const int window_index,CTabs &tabs,const int tab_index,
                                 const int x,const int y,const bool auto_x_resize,const bool auto_y_resize,
                                 const int right_offset,const int bottom_offset,const bool is_right,const bool is_bottom,
                                 ENUM_AXIS_TYPE axis_type,DoubleToStringFunction func_x_axis,DoubleToStringFunction func_y_axis);

nun wird mir ein fehler angezeigt:

'CreateGraph' - no one of the overloads can be applied to the function call    GUI Grundgeruest.mq5    44    19
could be one of 2 function(s)    GUI Grundgeruest.mq5    44    19
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    137    22
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,CTabs&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    142    22

Leider kann ich mein fehler nicht finden. Kann mir jemand diesen aufzeigen?

 
Aleksi-Trader:

Hallo ich habe ein Problem, testweise hab ich ein Fenster mit ein Graph erstellt... zumindest ist das die Planung.

in der Datei WndCreate gibt es 2 möglichkeiten :

nun wird mir ein fehler angezeigt:

'CreateGraph' - no one of the overloads can be applied to the function call    GUI Grundgeruest.mq5    44    19
could be one of 2 function(s)    GUI Grundgeruest.mq5    44    19
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    137    22
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,CTabs&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    142    22

Leider kann ich mein fehler nicht finden. Kann mir jemand diesen aufzeigen?

'CreateGraph' - no one of the overloads can be applied to the function call    GUI Grundgeruest.mq5    44    19

bedeutet das die Funktion in Zeile 44 nicht gefunden werden kann.

Ursache ist eine falscher Aufruf mit Parametern.

Du musst beide vergleichen . Deine Funktion und die Deklarierung.

Benutze den debugger an der Stelle und schau dir den Aufruf an
 
Christian #:

'CreateGraph' - no one of the overloads can be applied to the function call    GUI Grundgeruest.mq5    44    19

bedeutet das die Funktion in Zeile 44 nicht gefunden werden kann.

Ursache ist eine falscher Aufruf mit Parametern.

Du musst beide vergleichen . Deine Funktion und die Deklarierung.

Benutze den debugger an der Stelle und schau dir den Aufruf an

Leider geht es nicht den Debugger zu nutzen da der Fehler direkt nach den kompilieren auftritt. Der Debugger verweigert also sein Dienst.

Ich hab die Funktion kopiert und direkt darunter gesetzt um zu sehen ob ich Variablen vergessen hab oder evtl den falschen Typ angebe...wodurch ich trotzdem keine unterschiede erkennen konnte.

Die variablen hab ich untereinander geschrieben um besser vergleichen zu können.


      CWndCreate::CreateGraph(m_gra,//CGraph &object
                              m_window, //CElement &main
                              0,//const int window_index
                              5,//const int x
                              140,//const int y
                              false,//const bool auto_x_resize
                              false,//const bool auto_y_resize
                              10,//const int right_offset
                              23,//const bool is_bottom
                              false,//const bool is_right
                              false,//const bool is_bottom
                              AXIS_TYPE_DATETIME,// ENUM_AXIS_TYPE axis_type
                              2.654,//DoubleToStringFunction func_x_axis
                              8.398//DoubleToStringFunction func_y_axis
                              );
/* Vergleichscode aus WndCreate
      CreateGraph(CGraph &object,
                  CElement &main,
                  const int window_index,
                  const int x,
                  const int y,
                  const bool auto_x_resize,
                  const bool auto_y_resize,
                  const int right_offset,
                  const int bottom_offset,
                  const bool is_right,
                  const bool is_bottom,
                  ENUM_AXIS_TYPE axis_type,
                  DoubleToStringFunction func_x_axis,
                  DoubleToStringFunction func_y_axis
                  );
*/

Dennoch sehe ich den Fehler nicht

 
Ich nehm mal an eine axis muss man als integer übergeben, probier das mal
 
amando #:
Ich nehm mal an eine axis muss man als integer übergeben, probier das mal

Welche Variable meinst genau?

ENUM_AXIS_TYPE axis_type

Muss ne ENUM sein... gibt auch ne auswahl als, double,datetime oder custom

mit AXIS_TYPE_DOUBLE hab ich es schon probiert

 
Wie ist denn genau die Fehlermeldung? Und wann entsteht sie bei/nach dem Kompilieren oder nach dem Start? Gibt es eine .ex5-Datei.
 
Carl Schreiber #:
Wie ist denn genau die Fehlermeldung? Und wann entsteht sie bei/nach dem Kompilieren oder nach dem Start? Gibt es eine .ex5-Datei.

Direkt nach dem Kompiler kommt der Fehler:

'CreateGraph' - no one of the overloads can be applied to the function call    GUI Grundgeruest.mq5    44    19
could be one of 2 function(s)    GUI Grundgeruest.mq5    44    19
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    137    22
   bool CWndCreate::CreateGraph(CGraph&,CElement&,const int,CTabs&,const int,const int,const int,const bool,const bool,const int,const int,const bool,const bool,ENUM_AXIS_TYPE,DoubleToStringFunction,DoubleToStringFunction)    WndCreate.mqh    142    22

 

Naja da steht ganz genau der Fehler, des Kompilers nicht nach dem Kompiler, allerdings hört der aus, nach so einem Fehler weiterzumachen.

Und er gibt auch ganz genau an wo der Fehler ist: Zeile 44 Buchstabe 19.

 
Carl Schreiber #:

Naja da steht ganz genau der Fehler, des Kompilers nicht nach dem Kompiler, allerdings hört der aus, nach so einem Fehler weiterzumachen.

Und er gibt auch ganz genau an wo der Fehler ist: Zeile 44 Buchstabe 19.

Achso... Da muss ich gleich noch Mal schauen was der Fehler ist.


CreateGraph wäre das dann bzw Graph was ja nicht falsch sein sollte...
 
Aleksi-Trader #:

Achso... Da muss ich gleich noch Mal schauen was der Fehler ist.


Poste mal die Datei GUI Grundgeruest.mq5

 
Christian #:

Poste mal die Datei GUI Grundgeruest.mq5

Hab die Datei mal etwas abgespeckt Die EasyandFastGUI Version die ich nutze liegt mit bei.
Dateien:
GUI.zip  759 kb