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);
}
}
}
}