Galerie d'interfaces utilisateur écrites en MQL - page 5

 

Une nouvelle tentative d'intégration des contrôles dans les tableaux. Plus réussie que les tentatives précédentes, mais loin d'être la meilleure.


 

Le niveau supérieur est clairement atteint ici....


 

Bon sang, c'est vraiment écrit dans mon langage de balisage en MQL5.))

Dernière image pour aujourd'hui. Suite demain.


 

Impressionnant. Beaucoup de travail a été accompli !

Malheureusement, j'ai une expérience négative avec les éléments d'interface utilisateur créés par des développeurs tiers. La grande majorité des fenêtres que j'ai rencontrées ne s'affichaient normalement qu'avec une certaine résolution de moniteur et une valeur d'échelle de 100 % dans les propriétés de Windows. Et avec une résolution 4K et une mise à l'échelle de 175 % (dans mon cas), les contrôles devenaient illisibles ou se chevauchaient les uns les autres.

Soit dit en passant, cela s'applique également aux fenêtres créées à l'aide des classes d'interface utilisateur incluses dans MetaEditor.

Lorsque vous créez vos fenêtres, vérifiez-vous toujours leur aspect à différentes résolutions d'écran et valeurs d'échelle dans les paramètres de Windows ?

 
E38 contrôles devenaient illisibles ou se chevauchaient les uns les autres.

Soit dit en passant, cela s'applique également aux fenêtres créées à l'aide des classes d'interface utilisateur incluses dans le paquet MetaEditor.

Lorsque vous créez vos fenêtres, vérifiez-vous toujours leur aspect à différentes résolutions d'écran et valeurs d'échelle dans les paramètres de Windows ?

Merci.
À l'époque où j'ai développé cette interface utilisateur, le format 4K était nouveau et frais et n'était pas aussi répandu qu'il l'est aujourd'hui, et un tel problème n'existait pas. Plus précisément, je n'étais pas au courant des coûts du 4K parce que personne n'en avait parlé. Cependant, même si j'avais rencontré ce problème, je n'aurais pas été en mesure de le résoudre au niveau MQL. Très probablement, j'aurais conseillé à l'utilisateur d'utiliser le moniteur standard jusqu'à ce que les développeurs de MQ trouvent la solution appropriée et mettent à jour le langage et le terminal. Ensuite, il aurait mis à jour ses graphiques.

Mais nous n'en sommes pas arrivés là).

Ajouté :

En ce qui concerne la vérification de l'aspect des fenêtres et des panneaux à différentes résolutions d'écran, je n'ai pas fait ces vérifications à dessein, car il n'y a pas eu de plaintes ni de remarques parmi les quelques utilisateurs de mon interface utilisateur. Des problèmes auraient peut-être été détectés, mais encore une fois, ils ont été difficilement résolus au niveau MQL.
 
Реter Konow #:
Merci.
À l'époque où cette interface utilisateur a été développée, le format 4K était nouveau et frais et n'était pas aussi répandu qu'il l'est aujourd'hui, et ce problème n'existait pas. Plus précisément, je n'étais pas au courant des coûts du 4K parce que personne n'en parlait. Cependant, même si j'avais rencontré ce problème, je n'aurais pas été en mesure de le résoudre au niveau MQL. Très probablement, j'aurais conseillé à l'utilisateur d'utiliser le moniteur standard jusqu'à ce que les développeurs de MQ trouvent la solution appropriée et mettent à jour le langage et le terminal. Ensuite, il aurait mis à jour ses graphiques.

Mais nous n'en sommes pas arrivés là).

Ajouté :

En ce qui concerne la vérification de l'aspect des fenêtres et des panneaux à différentes résolutions d'écran, je n'ai pas fait ces vérifications à dessein, car il n'y a pas eu de plaintes ni de remarques parmi les quelques utilisateurs de mon interface utilisateur. Des problèmes auraient peut-être été détectés, mais encore une fois, ils ont été difficilement résolus au niveau MQL.
Dans les propriétés du terminal, il y a le DPI du moniteur depuis longtemps, et dans l'aide, il y a un exemple de calcul de la taille des objets graphiques.
 
Artyom Trishkin #:
Dans les propriétés du terminal, il y a le DPI du moniteur depuis longtemps, et dans l'aide, il y a un exemple de calcul de la taille des objets graphiques.
Donc, si j'étais confronté à un tel problème, je pourrais facilement le résoudre. Cependant, comme je l'ai déjà dit, je ne l'ai pas rencontré. Je n'ai pas encore appris à chercher des solutions en amont des problèmes émergents, mais j'essaie très fort.))

Au fait, des exemples de résolution du problème 4K se trouvent également dans l'aide ?
 
Реter Konow #:
des exemples de résolution du problème 4K se trouvent également dans l'aide ?

De quel problème s'agit-il ?

 
Artyom Trishkin #:

De quel type de problème s'agit-il ?

Celui du post #44.

D'ailleurs, il est étrange que la solution de l'aide dont vous parlez ne soit pas appliquée dans la bibliothèque d'interface utilisateur native de ME, ...à en juger par les propos de la personne ci-dessus.
 
Реter Konow #:
Celle qui figure dans le message n°44.

D'ailleurs, il est étrange que la solution de l'aide dont vous parlez ne soit pas appliquée dans la bibliothèque d'interface utilisateur native de ME, ...à en juger par les propos de la personne ci-dessus.

Ici(TERMINAL_SCREEN_DPI) :

Unexemple de calcul de facteur d'échelle :

//--- создаём кнопку шириной 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;

Utilisée de cette manière, la ressource graphique aura la même taille à l'œil nu sur des moniteurs de résolutions différentes. En même temps, la taille des éléments de contrôle (boutons, fenêtres de dialogue, etc.) correspondra aux paramètres de personnalisation.

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