Galerie der in MQL geschriebenen UIs - Seite 5

 

Wieder ein Versuch, Steuerelemente in Tabellen zu integrieren. Erfolgreicher als frühere Versuche, aber bei weitem nicht der beste.


 

Hier wird eindeutig die nächste Stufe erreicht: ....


 

Mann, das ist wirklich in meinem Markup Sprache in MQL5 geschrieben.))

Letztes Bild für heute. Fortsetzung morgen.


 

Beeindruckend. Es wurde eine Menge Arbeit geleistet!

Leider habe ich negative Erfahrungen mit Elementen der Benutzeroberfläche gemacht, die von Drittentwicklern erstellt wurden. Die überwiegende Mehrheit der Fenster, auf die ich gestoßen bin, wurde nur bei einer bestimmten Bildschirmauflösung und einem Skalierungswert von 100 % in den Windows-Eigenschaften normal angezeigt. Bei einer Auflösung von 4K und einer Skalierung von 175 % (in meinem Fall) wurden die Steuerelemente unleserlich oder überlappten sich gegenseitig.

Dies gilt übrigens auch für Fenster, die mit Hilfe der in MetaEditor enthaltenen UI-Klassen erstellt wurden.

Prüfen Sie bei der Erstellung Ihrer Fenster immer, wie sie bei verschiedenen Bildschirmauflösungen und Skalierungswerten in den Windows-Einstellungen aussehen werden?

 
E38 Steuerelemente unlesbar oder überlappten sich.

Dies gilt übrigens auch für die Fenster, die mit Hilfe der im MetaEditor-Paket enthaltenen UI-Klassen erstellt wurden.

Prüfen Sie bei der Erstellung Ihrer Fenster immer, wie sie bei verschiedenen Bildschirmauflösungen und Skalierungswerten in den Windows-Einstellungen aussehen werden?

Nein, danke.
Zum Zeitpunkt der Entwicklung dieser Benutzeroberfläche war das 4K-Format neu und frisch und nicht so weit verbreitet wie heute, und ein solches Problem gab es nicht. Genauer gesagt war ich mir der Kosten von 4K nicht bewusst, weil niemand dieses Problem angesprochen hatte. Aber selbst wenn ich auf dieses Problem gestoßen wäre, hätte ich es nicht auf der Ebene der MMS lösen können. Wahrscheinlich hätte ich dem Benutzer geraten, den Standardmonitor zu verwenden, bis die MQ-Entwickler eine geeignete Lösung finden und die Sprache und das Terminal aktualisieren. Und dann hätte er seine Grafik aufgerüstet.

Aber dazu ist es nicht gekommen).

Hinzugefügt:

Was die Überprüfung des Aussehens von Fenstern und Panels bei unterschiedlichen Bildschirmauflösungen angeht, so habe ich solche Überprüfungen nicht absichtlich durchgeführt, da es bei den wenigen Benutzern meiner Benutzeroberfläche keine Beschwerden und Anmerkungen gab. Vielleicht wären Probleme gefunden worden, aber wie gesagt - sie wurden kaum auf MQL-Ebene gelöst.
 
Реter Konow #:
Danke.
Zu der Zeit, als diese Benutzeroberfläche entwickelt wurde, war das 4K-Format neu und frisch und nicht so weit verbreitet wie heute, und dieses Problem gab es nicht. Genauer gesagt war ich mir der Kosten von 4K nicht bewusst, weil niemand es angesprochen hat. Aber selbst wenn ich auf dieses Problem gestoßen wäre, hätte ich es nicht auf der Ebene der MMS lösen können. Wahrscheinlich hätte ich dem Benutzer geraten, den Standardmonitor zu verwenden, bis die MQ-Entwickler eine geeignete Lösung finden und die Sprache und das Terminal aktualisieren. Und dann hätte er seine Grafik aufgerüstet.

Aber dazu ist es nicht gekommen).

Hinzugefügt:

Was die Überprüfung des Aussehens von Fenstern und Panels bei verschiedenen Bildschirmauflösungen angeht, so habe ich solche Überprüfungen nicht absichtlich durchgeführt, da es keine Beschwerden und Anmerkungen unter den wenigen Benutzern meiner Benutzeroberfläche gab. Vielleicht wären Probleme gefunden worden, aber wie gesagt - sie wurden kaum auf MQL-Ebene gelöst.
In den Terminaleigenschaften gibt es DPI des Monitors für eine lange Zeit, und in der Hilfe gibt es ein Beispiel für die Berechnung der Größe von grafischen Objekten.
 
Artyom Trishkin #:
In den Terminaleigenschaften ist der DPI-Wert des Monitors seit langem angegeben, und in der Hilfe gibt es ein Beispiel für die Berechnung der Größe von Grafikobjekten.
Wenn ich also ein solches Problem hätte, könnte ich es leicht lösen. Aber wie ich schon sagte, bin ich nicht darauf gestoßen. Ich habe noch nicht gelernt, vor auftauchenden Problemen nach Lösungen zu suchen, aber ich bemühe mich sehr.))

Übrigens, Beispiele für die Lösung des 4K-Problems finden Sie auch in der Hilfe?
 
Реter Konow #:
Beispiele für die Lösung des 4K-Problems finden sich auch in der Hilfe?

Von welchem Problem ist die Rede?

 
Artyom Trishkin #:

Um welche Art von Problem handelt es sich?

Das in Beitrag #44.

Übrigens ist es seltsam, dass die Lösung aus der Hilfe, von der Sie sprechen, nicht in der nativen UI-Bibliothek von ME angewandt wird, ... wenn man nach den Worten der Person oben urteilt.
 
Реter Konow #:
Die in Beitrag #44.

Übrigens ist es seltsam, dass die Lösung aus der Hilfe, über die Sie sprechen, nicht in der nativen UI-Bibliothek von ME angewendet wird, ... nach den Worten der Person oben zu urteilen.

Hier(TERMINAL_SCREEN_DPI):

EinBeispiel für eine Skalierungsfaktor-Berechnung:

//--- создаём кнопку шириной 1.5 дюйма на экране
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

Auf diese Weise wird die grafische Ressource auf Monitoren mit unterschiedlichen Auflösungen gleich groß dargestellt. Gleichzeitig entsprechen die Größen der Bedienelemente (Schaltflächen, Dialogfenster usw.) den Personalisierungseinstellungen.

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString() . В качестве параметра эти...