Ein Crowdsourced-Projekt auf Canvas durchführen - Seite 7

 
o_O:

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.

 
Vasiliy Sokolov:
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 Verzögerungen. Das hängt von der Anzahl der Artikel ab. Ich habe es überprüft. Wenn die Anzahl der Objekte 400-500 übersteigt, wird mein Fenster langsamer... 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 und je mehr Objekte er mit sich herumschleppt, desto langsamer wird er sein.
 
Реter Konow:
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.
Die Leistung wird durch den Algorithmus der Ereigniszustellung + Mindestreaktion des Elements auf das übergebene Ereignis beeinflusst. Es scheint, dass in Ihrem Fall die Verlangsamung nicht auf das Ereignis selbst zurückzuführen ist, sondern auf die Algorithmen, die diese Ereignisse verarbeiten.
 
o_O:

Können mehrere Instanzen eines Indikators auf einer einzigen Leinwand ausgegeben werden? Ich weiß nicht.

Nein. Alles, was ich brauche, ist ein MouseDown-Ereignis, ich werde glücklich sein.
 
Комбинатор:
Nein. Wie auch immer, alles was ich brauche ist das MouseDown-Ereignis, ich werde
Überwachen Sie das Ereignis CHARTEVENT_MOUSE_MOVE, es überträgt den Zustand der Maus, der Strg- und der Umschalttaste.
 
Vasiliy Sokolov:

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!

 
Ilyas:
Überwachen Sie das Ereignis CHARTEVENT_MOUSE_MOVE, es sendet den Zustand der Maus sowie der Tasten Crtl und Shift.
Wie ich oben erklärt habe, ist dieses Ereignis nicht an das Objekt gebunden und wird zu oft gesendet. Nicht an ein Objekt gebunden zu sein, ist wichtiger.
 
Ilyas:
Ü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.

Kombinator:
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.
CHARTEVENT_OBJECT_DRAG - wenn ich mich recht erinnere, wird es nicht zu Beginn der Bewegung, sondern nach dem Loslassen der Maus erzeugt?
 
o_O:
CHARTEVENT_OBJECT_DRAG ist ein fast nutzloses Ereignis. Weil es das Ende des Ziehens eines grafischen Objekts auf die übliche Weise signalisiert (d.h. es sollte ausgewählt sein, und ausgewählte Objekte werden perfekt durch Drücken der Entf-Taste gelöscht)
 
Vasiliy Sokolov:
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...