Huuch?
ObjectCreate() hat doch die Möglichkeit ein gr. Objekt in einem Unterfenster zu erstellen:
sub_window
[in] Nummer des Subfensters des Charts. Das angegebene Subfenster muss existieren, anderenfalls gibt die Funktion false zurück. .
Man müsste halt vorher prüfen ob es existiert.
Huuch?
ObjectCreate() hat doch die Möglichkeit ein gr. Objekt in einem Unterfenster zu erstellen:
Man müsste halt vorher prüfen ob es existiert.
Ja, aber das geht scheinbar nur bei indicatoren
Das Problem liegt hier bei CAppDialog().
Da müsstest du tief in die Systemlibrary reingreifen. CAppDialog() unterscheidet zwischen EA, Indicator und Script.
Wenn du einen Dialog in einem Subwindow erstellst, wird der Dialog über das ganze Subwindow gepappt. Frag MQ warum, ich frag mich da schon lang nix mehr.
ObjectCreate() kann durchaus in einem Subwindow grafische Objekte erzeugen.
Eine schnelle Lösung wäre: Chart duplizieren ,einen 'abdocken' und dort das Panel einfügen.
Hab da mal eine neue Frage, wie Christian ja schon geschrieben hat, funktioniert das aus dem Indicator Window heraus, wenn man den Object Button erzeugt.
das ganze geht eigentlich relativ gut, das hab ich mir dort ausgeborgt
https://www.mql5.com/de/articles/2720
das Objekt erzeuge ich über eine Text Datei. In dieser habe ich mal die Symbole abgespeichert und diese werden auch in den Array geschrieben
mal der Inhalt der txt Datei
EURUSD
GBPUSD
AUDUSD
GBPJPY
USDJPY
US30
also nix aufregendes, einfach nur die Symbole
die lese ich in den Array lines welchen ich im Public Teil des Codes definiert habe um den Zugriff zu erleichtern
string lines[];
hoffe das ist kein Schwerverbrechen, den Array als string zu definieren, aber es funktioniert
dann gehe ich her und will baue mir meine Button anhand des Array
if(!ReadFileToArray(FileNamePair,lines)) { Alert("Error, see the \"Experts\" tab for details"); } else { for(int i=0;i<ArraySize(lines);i++) { ButtonCreate(0,"Cross"+(string)i,SubWin,InpXdistance*(i+1)+ButtonWidth*(i),TopDistance*2+ButtonHigh*1,ButtonWidth,ButtonHigh,CORNER_LEFT_UPPER,lines[i],"Arial",FontSize,clrWhite,clrBlack,clrNONE,false,false,false,true,0); }
auch das funktioniert Problemlos, ist auch wesentlich einfacher als das ganze starr zu codieren
sieht dann so aus, die 2te Zeile ist es
nur jetzt hab ich das Problem,
wie erzeuge ich die OnChartEvent? beim Sell Button steht das so drin, damit ich es testen konnte ob die Werte richtig übernommen wurden
#
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(id==CHARTEVENT_OBJECT_CLICK) { if(sparam=="Sell") {Print(ArraySize(lines)); ObjectSetInteger(0,"Sell",OBJPROP_STATE,false); } } }
wie kann ich hier die richtige Anzahl und den Namen der Button identifizieren wenn ich ihn drücke mit der Maus?
Muss ich den woanders zuerst identifizieren?
PS: ich habs auch versucht mit der Class Button zu arbeiten, aber da komme ich gar nicht zusammen. Und wenn man hier im Forum sucht oder in den Artikeln, dann ist klar, das hier keiner die Button.mqh verwendet
- www.mql5.com
danke, Problem gelöst, habs selbst gefunden
string Objekt = sparam; if(sparam == Objekt) { Print(ObjectGetString(0,Objekt,OBJPROP_TEXT,0) ); ObjectSetInteger(0,Objekt,OBJPROP_STATE,false); }
danke, Problem gelöst, habs selbst gefunden
- 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.
Hallo,
das die GUI Möglichkeiten im MT5 ja sehr begrenzt sind ist ja schon seit längeren klar.
Auch die Trennung mit den verschiedenen Möglichkeiten zwischen EA und Indikator sind mühsam.
in einem Indicator kann ich keine Trade befehle ausführen oder Order setzen.
In einem EA kann ich die Buttons nicht in ein Subwindow schieben
ich hab hier 2 relativ gleiche Panales,
das obere als EA, das untere als Indicator in einem Subwindow, in diesem Fall 2
ich versuche, die Button vom EA auch in einem Subwindow darzustellen, aber das bekomme ich nicht hin
bei der Erstellung kann ich ja das ja nicht in den #property einstellen
in der OnInit läuft das so ab
das ganze greift auf die
zu,
hier steht drin
geht das etwa gar nicht bei EA, das ich die Button in ein Sub Window auslagere?
bzw, wenns geht wie? eine Sub Window ID eintragen geht mal nicht, auch -1 geht nicht, das war auch schon eine Idee
warum das ganze?
wenn ich die Button im Hauptfenster habe, muss ich den Chart immer zusammenschieben, das verzerrt den ganzen Chart
hoffe ich hab das Problem ausreichend erklärt
lg
amando