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: 4776
Beiträge: 42458
Benutzer: 7.141
Aktive Benutzer: 136
Links: 83
Wir begrüßen unseren neuesten Benutzer: elfriede
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 5 Stunden
- elfriede
vor 4 Tagen
- renkotrade
vor 2 Wochen
- Evimeri
vor 2 Wochen
- T.Rader
vor 2 Wochen
- qdjack

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

Empfehlungen

Antwort
 
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;;      
        }
     }
  }
Mit Zitat antworten
  #2 (permalink)  
Alt 17.10.21
AVT AVT ist offline
Elite Mitglied
 
Registriert seit: Mar 2018
Ort: Hamburg
Beiträge: 521
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
Mit Zitat antworten
  #3 (permalink)  
Alt 18.10.21
Mitglied
 
Registriert seit: Sep 2018
Beiträge: 238
Max2018 befindet sich auf einem aufstrebenden Ast
Standard

SUPER - Danke
Mit Zitat antworten
Antwort

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 21:26 Uhr.





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