Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43251
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 4 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 283
Gesamt: 283
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 17.10.21
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard Button geht seit Update nicht mehr

Hallo,

seit einem Update von MT4 in den letzten Monaten gehen die Buttons nicht mehr.... wie kann ich den Code anpassen, damit die wieder laufen ?

Code:
int PauseEA;

int OnInit()
  {
   CreatePauseButton();
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   ObjectDelete("PauseButton");
  }
int start()
{
Comment(PauseEA);
}
void CreatePauseButton()
   {
   ObjectCreate(0,"PauseButton",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"PauseButton",OBJPROP_XDISTANCE,530);
   ObjectSetInteger(0,"PauseButton",OBJPROP_YDISTANCE,55);
   ObjectSetInteger(0,"PauseButton",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"PauseButton",OBJPROP_YSIZE,50);
   
   ObjectSetString(0,"PauseButton",OBJPROP_TEXT,"Pause EA");
   }


void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
  {
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      Print ("Now inside OnChartEvent");
      if(sparam=="PauseButton")
        {
         PauseEA=1;;      
        }
     }
  }
  #2 (permalink)  
Alt 17.10.21
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 612
AVT befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Max2018 Beitrag anzeigen

Code:
int PauseEA;

void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam)
  {
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      Print ("Now inside OnChartEvent");
      if(sparam=="PauseButton")
        {
         PauseEA=1;;      
        }
     }
  }
Ein Knopf kann entweder reingedrückt sein oder nicht - das siehst Du am besten bei dreidimensionalen
ObjectSetInteger(0,"PauseButton",OBJPROP_BORDER_CO LOR,clrNONE);

Dann kommt es drauf an, was genau Du willst. Hier ein Beispiel, wo solange Pause herrscht, wie der Knopf reingedrückt ist.
Wird dann ein zweites Mal auf den (jetzt reingedrückten) Knopf gedrückt, dann wird die Pause aufgehoben und der Knopf wieder auf ungedrückt gesetzt.
So kann man mittels Knopfdruck die Pause an- und abschalten.
Code:
   // ============================= buttons
   if(id==CHARTEVENT_OBJECT_CLICK)
   {
      if(sparam=="PauseButton")                        //KannGedrücktOderUngedrücktSein
      {
         bool State=ObjectGetInteger(0,"PauseButton",  //JetztGedrücktOderNicht?
                                     OBJPROP_STATE);
         Print(__FUNCTION__,
               " Pause pressed",                       //WelcherKnopfGedrückt
               " PauseEA=",(int)PauseEA,               //BisherigerWert
               " State=",(int)State      );            //BisherigerGedrücktwert
         if(ButState)                                  //VorherGedrückt:PauseIstAn
         {
            PauseEA=0;                                 //JetztPauseAbschalten
            ObjectSetInteger(0,"PauseButton"           //AufUngedrücktSetzen
                             OBJPROP_STATE,false);
         }
         else                                          //VorherUngedrückt:PauseIstAus
         {
            PauseEA=1;                                 //JetztPauseAnschalten
            ObjectSetInteger(0,"PauseButton"           //AufUngedrücktSetzen
                             OBJPROP_STATE,true);      //AufGedrücktSetzen
         }
      }//sparam=="PauseButton"
   }//id==CHARTEVENT_OBJECT_CLICK
Aber Vorsicht, wenn der EA durch irgendwelche Ereignisse neu geladen wird, hast Du den Ursprungszustand wieder, also eventuell sicherstellen, daß irgendwo außerhalb kontrolliert wird, ob er laufen darf.
AVT
  #3 (permalink)  
Alt 18.10.21
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

SUPER - Danke
Thema geschlossen

Lesezeichen

Stichworte
button

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------