Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4
Startseite Registrieren Hilfe Community Kalender Heutige Beiträge Suchen

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43260
Benutzer: 7.223
Aktive Benutzer: 75
Links: 84
Wir begrüßen unseren neuesten Benutzer: Sundaytrader
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 6 Tagen
- Sundaytrad...
vor 6 Tagen
- TS_6
vor einer Woche
- Mane
vor 3 Wochen
- AlbertZiz
vor 3 Wochen
- michak

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard Tastenkombi/eigene Instanzen?!

Hallo steh grad total aufn schlauch,

hoffe jem kann helfen......ums grob zu erklären, ich erstelle Objekte nach einem bestimmten ereignis,
da dass gelöste ereignis immer den gleichen ablauf hatte möchte ich allen erstellen objekten, die gleiche Tastenkombi zuordnen, da gibs sozusagen einen an und ausschalter. Das Problem ist, dass wenn ich ein Objekt auf "an" stelle und dann auf das nächste klicke, dieses Objekt sofort den status des ersten objektes bekommt und ebensfalls sofort auf "an" springt und das möchte ich verhinder CodeBeispiel:


Code:
      if(shift_pressed==false && lparam==16)// 16 = shift taste
            {shift_pressed= true;}
      if(shift_pressed == true &&lparam == 66)// 66 = B taste
        {
         Schalter++; shift_pressed=false; 
        }

if (Schalter == 0)
{
//tuh iwas

}

if(Schalter==1)
{
 
Schalter =0;
}

bool Arrow_erstellen(string name,datetime time,double price,color clr)
{
      ObjectCreate(0,name,OBJ_ARROW,0,time,price);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,108);
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(0,name,OBJPROP_BACK,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
       return(true);
}
wie schaffe ich es, dass jedes Objekt seine eigene Instanz/Ablauf bekommt
  #2 (permalink)  
Alt 07.03.17
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard

sorry code muss natürlich so aufgebaut sein:

Code:
      if(shift_pressed==false && lparam==16)// 16 = shift taste
            {shift_pressed= true;}
      if(shift_pressed == true &&lparam == 66)// 66 = B taste
        {
         Schalter++; shift_pressed=false; 
        }

if (Schalter == 1)
{
//tuh iwas

}

if(Schalter==2)
{
 
Schalter =0;
}

bool Arrow_erstellen(string name,datetime time,double price,color clr)
{
      ObjectCreate(0,name,OBJ_ARROW,0,time,price);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,108);
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(0,name,OBJPROP_BACK,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
       return(true);
}
  #3 (permalink)  
Alt 07.03.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ich verstehe den Text nicht und kann damit keine Lösung produzieren.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #4 (permalink)  
Alt 12.03.17
Mitglied
 
Registriert seit: Apr 2014
Beiträge: 118
Trader6666 befindet sich auf einem aufstrebenden Ast
Standard

Code:
//Global----------------------------------------------------------------------------
string Object;
bool shift_pressed   = false;  
int B_Button_pressed = 0; 
//------------------------------------------------------------------------------------

int start()
  {
//---
//Button wird oben Links erstellt
 Button("Button") ;
return(0);
  }
//+------------------------------------------------------------------+
 void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam)
   {
//Zeitstempel
string stamp = IntegerToString(TimeLocal());

if(id== CHARTEVENT_OBJECT_CLICK && sparam == "Button")
  {    // Namen werden dynamisch erstellt, damit es keine Verwechslung bei der Zuordnung gibt
       Line  (stamp+"Line",Time[10],High[10],Time[0],High[0],clrLime);  
       Arrow (stamp+"Arrow",Time[10],High[10],clrLime); 
  }

   //Objekt wird ausgelesen und gespeichert
   if(id== CHARTEVENT_OBJECT_CLICK)
     {
      Object = sparam;     
     }
       
      //Tastenkombination shift+B wírd erfasst, wenn erfolgt
      if(id==CHARTEVENT_KEYDOWN)
      if(shift_pressed==false && lparam==16)
            {shift_pressed= true;}
      if(shift_pressed == true &&lparam == 66)// 66 = B
        {
         B_Button_pressed++; shift_pressed=false; 
        }
     
//Paramenter Name/Buttonpressed Wert/Zeitstempel werden an Funktion weitergegeben
     MOVE_OBJECT(Object,B_Button_pressed,stamp); 
  
}

void MOVE_OBJECT(string _Object,int _B_Button_pressed,string stamp)  
{    
    //Name des geklickten Objektes wird gekürzt, so das der Zeitstempel 
    //alleine benutzt werden kann, um den zugehörigen Arrow korrekt zuordnen zu können 
   
 string Nummer = StringSubstr( _Object,0,10); 

    //Tastenkombi wurde ausgelößt
    if(_B_Button_pressed == 1)
      {//Objekt wird dementsprechend zu dem geklickten Objekt bewegt
       ObjectMove(0,Nummer+"Arrow",0,ObjectGetInteger(0,_Object,OBJPROP_TIME1),ObjectGetDouble(0,_Object,OBJPROP_PRICE1) ) ;
      }    

   if(_B_Button_pressed ==2)
     {
 
      _B_Button_pressed=0;      
     }
}

void Line(string name,datetime time1,double price1,datetime time2,double price2,color clr)
{
      ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clrYellow);
      ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
      ObjectSetInteger(0,name,OBJPROP_BACK,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,true);
      ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
      ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
 
} 

void Arrow(string name,datetime time,double price,color clr)
{
      ObjectCreate(0,name,OBJ_ARROW,0,time,price);
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,108);
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
      ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
      ObjectSetInteger(0,name,OBJPROP_BACK,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
    
}   

void Button(string name)
  {

      ObjectCreate(0,name,OBJ_BUTTON,0,0,0);
      ObjectSetInteger(0,name,OBJPROP_XDISTANCE,10);
      ObjectSetInteger(0,name,OBJPROP_YDISTANCE,10);
      ObjectSetInteger(0,name,OBJPROP_XSIZE,70);
      ObjectSetInteger(0,name,OBJPROP_YSIZE,30);
      ObjectSetInteger(0,name,OBJPROP_CORNER,0);
      ObjectSetString(0,name,OBJPROP_TEXT,"Button A");
      ObjectSetString(0,name,OBJPROP_FONT,"Arial");
      ObjectSetInteger(0,name,OBJPROP_FONTSIZE,10);
      ObjectSetInteger(0,name,OBJPROP_COLOR,clrSteelBlue);
      ObjectSetInteger(0,name,OBJPROP_BGCOLOR,clrYellow);
      ObjectSetInteger(0,name,OBJPROP_BORDER_COLOR,clrMagenta);
      ObjectSetInteger(0,name,OBJPROP_BACK,true);
      ObjectSetInteger(0,name,OBJPROP_STATE,true);
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
      ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
      ObjectSetInteger(0,name,OBJPROP_HIDDEN,false);
      ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
   
  }
Ok ich hoffe dieser Text ist verständlicher, grob gesagt erstelle ich eine Trendlinie und einen Arrow, nachdem ich die linie angeklickt habe, soll nach der tastenkombi shift+B , der Arrow dem ersten Punkt der Trendlinie folgen .

Wenn ich ein zweiten Objekt erstelle und der _B_Button_pressed status immer noch 1 ist, bewegt sich der 2ter Arrow umgehend zu der zweiten trendlinie die erstellt wurde und das möchte ich verhindern, so das jede linie ihren eigenen "_B_Button_pressed Status" erhält, wenn ich den status automatisch auf null setze wenn ich das objekt wechsle, wird der status des ersten objektes ja auch auf 0 gesetzt, und ich müsste die tastenkombi ja wiederholen, komm leider ned auf ne Lösung wie ich das matchen kann. hoffe das war ned zu kompliziert erklärt
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, programmierung mql4, tastenkombination, tastenkombination objekte


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 +2. Es ist jetzt 21:16 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.
-----------------------------------------------------------------------------------------------------------------------------