![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Leider ist der Code nicht vollständig. Im Moment unterscheiden die Diagrammereignisse nicht zwischen A und a
Ich habe bereits in SD darüber geschrieben.
gute nachrichten von der sd zu diesem thema
der nächste Build wirdTerminalInfoInteger-Konstanten für den Status von CapsLock und Shift hinzufügen
jetzt sind sie undokumentiert.
1020 - CapsLock
1016 - Shift
1255 - Code der aktuellen Eingabesprache
d.h. die Bearbeitung ist bereits halbwegs abgeschlossen. ))
Die zweite Aufgabe besteht darin, der Karte beizubringen, den Raum zu erfassen und einzugeben.
Wenn es eine Verzögerung gibt, ist sie mit dem bloßen Auge nicht zu erkennen. In meinem Panel sendete MouseMove einst Tausende von Elementen, darunter auch unsichtbare, dann machte ich ein intelligenteres Mailing, aber visuell trug es nicht zur Geschwindigkeit bei.
Es gibt definitiv Bremsen. Dies hängt von der Anzahl der Objekte ab. Ich habe es überprüft. Wenn die Anzahl der Objekte 400-500 übersteigt, verlangsamt sich das Ziehen und Ablegen meiner Fenster... Ich habe monatelang an der Verbesserung der Code-Effizienz gearbeitet, aber es ist mir nicht gelungen, diesen Effekt zu überwinden. Ich denke, je leistungsfähiger der Computer ist, desto mehr Objekte bleiben von der Verzögerung unbemerkt.
Können mehrere Instanzen eines Indikators auf einer einzigen Leinwand ausgegeben werden? Ich weiß nicht.
Nein. Wie auch immer, alles was ich brauche ist das MouseDown-Ereignis, ich werde
Mir scheint, dass es nach den Artikeln von Anatoly zumindest ein seltsamer Zeitvertreib ist, die gleichen Eier wieder im Profil zu erstellen. Grafik ist für MT überhaupt kein Thema.
- Die Benutzer brauchen keine grafischen Schnittstellen. Infolgedessen ist es unmöglich, die GUI zu überwachen, und ihre Entwicklung wird sich nie auszahlen.
- Wenn Sie Ihre Fähigkeiten verbessern wollen, ist es besser, sofort einen Job als Junior zu bekommen. So können Sie wenigstens gleich etwas Geld verdienen und Ihre Fähigkeiten langsam verbessern.
- Eine zu enge Zielgruppe. Wer braucht schon Bibliotheken? - Absolut niemand, außer einer Handvoll Programmierer, und die haben schon längst alle Bibliotheken geschrieben, die sie brauchen. Ich habe zum Beispiel zwei eigene Grafikbibliotheken.
Ich möchte hier niemanden belehren, aber ich kann euch einen Rat geben: Leute, schnuppert mal an dem Pulver. Lernen Sie, wie man mit Benutzern arbeitet. Lernen Sie ihre Psychologie kennen. Lernen Sie, wie Sie ihre Ideen überwachen können. Dann kommen Sie schnell auf den Boden der Tatsachen zurück, und Sie werden ganz anders denken. Auch ich habe einmal an einige besondere und schöne Ideen geglaubt, aber dieser ganze Unsinn funktioniert nicht. Was Sie hier erörtern, nützt niemandem außer Ihnen.+ das ist richtig
Das einzige Mal, dass ich einem Benutzer gesagt habe - lasst uns eine wirklich coole und schöne Schnittstelle schaffen !
Was sie wirklich brauchen, ist ein Expert Advisor ohne blumige Ausschmückungen und zusätzliche Funktionen - also ohne eine schöne, benutzerfreundliche Oberfläche!
Das Wichtigste, was die Nutzer wollen, ist, dass das Produkt entsprechend der Aufgabenstellung funktioniert.
Wir alle wissen, dass die Entwicklung der Schnittstelle + auf Design - nimmt eine anständige Menge an Zeit noch für die Fehlersuche ist eine sehr teure Ressource verbrachte TIME!
Überwachen Sie das Ereignis CHARTEVENT_MOUSE_MOVE, es sendet den Zustand der Maus sowie der Tasten Crtl und Shift.
Überwachen Sie das Ereignis CHARTEVENT_MOUSE_MOVE, das den Zustand von Maus, Strg- und Umschalttaste überträgt.
ist nicht genau das, was erwartet wird.
Das Ereignis OBJECT_CLICK wird erzeugt, nachdem die Maus angehoben wurde, und kann nicht verfolgt werden, wenn die Maus auf einem Objekt gedrückt wird.
Ich möchte ein Startereignis, wenn die Maus auf dem Objekt gedrückt wird.
Wie ich oben erklärt habe, ist dieses Ereignis nicht mit dem Objekt verbunden und wird zu oft gesendet. Es ist wichtiger, nicht an das Objekt gebunden zu sein.
Die Leistung wird durch den Algorithmus für die Zustellung von Ereignissen und die Mindestreaktion auf das übergebene Ereignis beeinflusst. Es scheint, dass in Ihrem Fall die Langsamkeit nicht auf das Ereignis selbst zurückzuführen ist, sondern auf die Algorithmen, die diese Ereignisse verarbeiten.
Sehen Sie, die Ereignisübergabe und der Algorithmus sind so einfach wie möglich: In OnChartEvent() auf das MouseMove-Ereignis, in dem auch der Zustand der gedrückten linken Maustaste festgelegt ist, fangen wir das Ereignis des Drückens des Fensterbewegungsgriffs ab. Als nächstes rufen Sie die Fensterverschiebungsfunktion auf, in der eine X- und Y-Verschiebung (mit ObjectSetInteger()), die der aktuellen Cursorverschiebung entspricht, auf alle Fensterobjekte innerhalb der Schleife angewendet wird. Das ist alles.
Gleichzeitig ist klar, dass je mehr Objekte im Fenster sind, desto mehr Objekte müssen verschoben werden. Offenbar ist eine große Anzahl von Objekten, die bewegt werden müssen, die Ursache für die Verlangsamung...