Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 26.04.16
marquez marquez ist offline
Mitglied
 
Registriert seit: Aug 2014
Beiträge: 47
marquez befindet sich auf einem aufstrebenden Ast
Standard

Hi,

das weiß ich nicht. Dafür bin ich nicht so der OOP Profi.

Ich möchte aber hier noch ganz kurz das Beispiel von der MQL Seite aufgreifen, jedoch kein Crosspost in MQL4 oder neuen Post dort machen.

Wenn ich das Teslibrary 1 compiliere und laufen lasse, führt dort jeder Klick zu einem Doppelten Aufruf, also der Print wird jedesmal doppelt aufgerufen aus der onevent funktion.
Gibts da evtl. ne quick´n´dirty solution für ? Bei MQL5 läuft das ja problemlos, und die Routinen scheinen identisch zu sein. Muss die Abfrage anders beim MT4 erfolgen ?

Thx nochmal an dieser Stelle.

P.S. die OnEvent Funktion sieht wie folgt aus, bei MQL4 & 5

Code:
void CProgram::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
//--- Menu item click event
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_CONTEXTMENU_ITEM)
     {
      ::Print(__FUNCTION__," > id: ",id,"; lparam: ",lparam,"; dparam: ",dparam,"; sparam: ",sparam);
     }
//--- Button click event
   if(id==CHARTEVENT_CUSTOM+ON_CLICK_BUTTON)
     {
      ::Print(__FUNCTION__," > id: ",id,"; lparam: ",lparam,"; dparam: ",dparam,"; sparam: ",sparam);
      //---
      if(sparam==m_simple_button3.Text())
        {
         if(m_simple_button3.IsPressed())
            m_simple_button1.ButtonState(false);
         else
            m_simple_button1.ButtonState(true);
        }
      //---
      if(sparam==m_icon_button2.Text())
        {
         if(m_icon_button2.IsPressed())
           {
            m_icon_button1.ButtonState(true);
            m_icon_button4.ButtonState(true);
           }
         else
           {
            m_icon_button1.ButtonState(false);
            m_icon_button4.ButtonState(false);
           }
        }
     }
  }