Wir haben jetzt eine neue Version von MT4GUI veröffentlicht. Alle Betatester sind herzlich eingeladen, mich zu kontaktieren
für Beispiele: http: //www.fx1.net/wiki/pmwiki.php/MT4GUI/MT4GUI
#import "toolbox.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import
Tolle Idee, aber das Produkt funktioniert noch nicht. Nicht ohne die "libtrade.mqh" und "libvisual.mqh". Wo kann ich diese Dateien bekommen, um die mt4gui.dll wirklich zu testen?
Ohne diese Dateien kann der Compiler die Funktionen "pFontSize", "pReset", "p" und "CloseAllByMagic" nicht definieren.
pro_
Sie können die Dateien in der Download-Sektion finden. Seit 2 Tagen gibt es Updates. Die Farben funktionieren jetzt und einige Bugs wurden behoben.
Ja, man braucht die Include-Dateien, aber sie haben nichts mit dem mt4gui-Projekt zu tun. Es sind einfach meine eigenen Routinen, um einige Funktionen wie p (print to screen) zu definieren. Der Beispielcode ist eine vollständige Demonstration von mt4gui und auf der anderen Seite arbeiten wir immer noch an diesem Projekt.
Kommt bald:
Erkennung der Mausposition
Erkennung des Diagrammhintergrunds zur automatischen Anpassung der Bg-Farben von Objekten
Listbox
Grüße
Das Produkt funktioniert, und es ist genau das, was ich brauche. Aber...
Ich habe ein paar Probleme damit.
1) Ich kann den Text nicht auf dem Bildschirm platzieren (Lots, SL, TP, etc. Zeile)
2) Die Farben funktionieren nicht, egal was ich tue;
3) dies ist eher ein Vorschlag - ist es möglich, die Schaltflächen in einem separaten Unterfenster zu platzieren? Das wäre viel bequemer, würde wie eine Handelskonsole aussehen und, wenn das Unterfenster minimiert ist, helfen, versehentliche Klicks auf eine Schaltfläche zu vermeiden. Soweit ich aus der PutObject-Funktion ersehen kann, sind die Koordinaten nicht mit dem Haupt- oder Unterfenster verbunden.
Aber unabhängig von all dem ist dies ein großartiges Produkt. Ich habe lange darauf gewartet, dass es in MT4 implementiert wird. Vielen Dank!
pro__
1) um einen Text auf dem Bildschirm zu platzieren, können Sie MQL-interne Objekte verwenden, hier ist ein Beispielcode:
// -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Ein weiteres vollständiges Beispiel ist:
#import "mt4gui.dll" int tbPutObject(int,string,int,int,int,int,string); int tbRemoveAll(int); int tbSetText(int,string,int,string); int tbSetBgColor(int,int); int tbSetTextColor(int,int); string tbGetText( int ); bool tbIsClicked( int ); int tbRemove(int); int tbEnable(int,int); #import #include <libtrade.mqh> #include <libvisual.mqh> // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= // Login implementation demo // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= int btn1,btn2,edit1,edit2,l1,l2; int ticks; bool LoggedIn = false; string obj1=""; int init() { int hwnd=WindowHandle(Symbol(),Period()); tbRemoveAll(hwnd); ObjectsDeleteAll(); //void pxy(string mytext,color clr,int posx,int posy,int size) pxy("Please login",Yellow,250,50,19); pxy("Login :",White,250,100,17); pxy("Passwd:",White,250,140,17); l1=tbPutObject(hwnd,"text",350,100,250,30,"Username"); l2=tbPutObject(hwnd,"text",350,140,250,30,"Password"); btn1=tbPutObject(hwnd,"button",250,200,150,40,"Login"); btn2=tbPutObject(hwnd,"button",450,200,150,40,"Exit"); // set colors tbSetBgColor(btn1,Green); tbSetTextColor(btn1,White); tbSetBgColor(btn2,IndianRed); tbSetTextColor(btn2,White); tbSetText(l2,"xxxxxxxxxx",24,"Wingdings"); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { int hwnd=WindowHandle(Symbol(),Period()); ticks++; pReset(); if (MathMod(ticks,20)==19 && StringLen(obj1)>0) ObjectDelete(obj1); // If still not logged in we use this block if (!LoggedIn) { // exit button if (tbIsClicked(btn2)) { ObjectsDeleteAll(); tbRemoveAll(hwnd); Destroy("Authentification Failed"); return(1); } // login button if (tbIsClicked(btn1)) { if (tbGetText(l1)=="admin" && tbGetText(l2)=="pass") { PlaySound("ok.wav"); LoggedIn=true; tbRemoveAll(hwnd); ObjectsDeleteAll(); } else { PlaySound("alert2.wav"); obj1 = pxy("Authentification Failed",Red,250,20,12);} } return(1); } // From here we have the functions after login p("Admin has been autentificated successfully",Green); return(0); } // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= string pxy(string mytext,color clr,int posx,int posy,int size) { string n="pxy3txt"+posx+posy; ObjectCreate(n, OBJ_LABEL, 0, Time[lib_startbarno], lib_nextlinelevel); ObjectSet(n, OBJPROP_CORNER, 0); ObjectSet(n, OBJPROP_XDISTANCE, posx); ObjectSet(n, OBJPROP_YDISTANCE, posy); ObjectSet(n, OBJPROP_COLOR, clr); ObjectSet(n, OBJPROP_BACK, false); ObjectSetText(n, mytext, size); return(n); }
Wie Sie auf meinen Screenshoots sehen, funktionieren Demos. Diese Version von mt4gui habe ich gerade als Version 0.3 hochgeladen, Sie können die neueste Version nehmen. 0.1 hat überhaupt keine Farbunterstützung. Sie benutzen wahrscheinlich 0.1.
Um Schaltflächen vom Bildschirm zu entfernen, müssen Sie deinit() verwenden.
//+------------------------------------------------------------------+ //| expert deinitialization function | //| dont forget to remove objects on deinit() | //+------------------------------------------------------------------+ int deinit() { tbRemove(btn1);tbRemove(btn2); tbRemove(l1);tbRemove(l2); return(0); }
Hallo!
Dies ist das nützlichste Addon, das ich je gesehen habe, vielen Dank für die Entwicklung.
Gibt es eine Möglichkeit, den Status eines Kontrollkästchens oder den Text eines Textfeldes/Labels/Buttons abzurufen?
Farben funktionieren nicht mit Version 0.2.
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hier möchte ich ein neues kostenloses Addon für mt4 als Preview vorstellen. Ich teste derzeit ein Produkt namens mt4gui. Dieses Produkt ermöglicht es, Buttons, Text- und Listenfelder direkt im Chart zu platzieren; hier ist ein Preview-Screenshoot, der bereits funktioniert
http://fx1.net/wiki/uploads/img_7.png
Die Schaltflächen reagieren sofort nach dem Klick, ohne auf den Tick auf der Brokerseite zu warten. Wir werden dieses Produkt in den nächsten Wochen mit weiteren Funktionen verbessern. Der Grund, warum ich das hier poste, ist, um Ideen von der Community zu bekommen, was benötigt wird. Natürlich kann nicht alles realisiert werden, aber ich werde interessante Ideen hier filtern.
Hier ist ein Beispiel mit sehr einfachem Code, der die Anwendung demonstriert: