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

 
hini #:
Cette partie du code est-elle la base du constructeur ?

Les fonctions de ce fichier relient les contrôles d'interface de différentes manières. Par exemple :

1. La commande SWITCH_ALL du langage de balisage permet de définir l'état activé de la commutation entre tous les éléments d'un groupe. Supposons qu'il y ait 10 boutons radio dans un groupe. Cette commande permet de faire basculer les boutons entre eux lorsqu'on clique dessus, sans code supplémentaire. Il en va de même pour tous les éléments - onglets, boutons simples, cases à cocher, ... tout ce qui peut être cliqué. Même différents types d'éléments peuvent être échangés. Cette commande est pratique s'il y a beaucoup d'éléments. Si vous devez changer des éléments individuels au sein d'un groupe, leurs noms sont listés entre les mots SWITCH, ... FIN,.

2. La commande SYNC fonctionne de la même manière, mais avec les paramètres des éléments. Elle synchronise les changements de valeurs des paramètres. Par exemple, nous lions le curseur et le champ de saisie avec des boutons, de sorte que lorsque vous entrez une valeur dans le champ de saisie, le curseur se déplace lui-même jusqu'à la position souhaitée. Ou encore, en déplaçant la poignée du curseur, les valeurs du champ de saisie qui lui sont liées changent. Vous pouvez synchroniser les valeurs des paramètres de différents éléments s'ils en ont. La fonction "Set_SYNC()" permet de le faire.

3. Le mot clé BLOCKS ouvre la liste des éléments à verrouiller lorsque l'on appuie sur l'élément principal. La fonction "Set_lock_elements()" est partiellement responsable de cette commande.

4. La fonction "Set_link_between_fields_and_tabs()" fait exactement ce que son nom indique - elle établit un lien entre le fait de cliquer sur un onglet et l'ouverture de l'espace de ses éléments à l'intérieur de la fenêtre. En d'autres termes, elle gère le phénomène des éléments qui lui sont attribués.


Peut-on considérer qu'il s'agit là de la base du constructeur ? Il s'agit plutôt d'une des parties, qui sont nombreuses. La base du constructeur est dispersée dans de nombreux fichiers et n'est pas rassemblée en un seul endroit pour des raisons objectives.


P.S. D'ailleurs, au départ, je voulais publier le constructeur dans un seul fichier et je l'ai rassemblé. Il s'est avéré être ~37 mille lignes. Mais même dans ce fichier, je n'ai pas pu indiquer la base du constructeur, parce qu'il ne peut pas être rassemblé en un seul endroit pour des raisons techniques.


J'espère que j'ai aidé à la compréhension, maintenant je vais travailler sur la version.))) Si des questions sont posées, j'essaierai d'y répondre autant que possible)).

 
Реter Konow #:

Les fonctions de ce fichier relient les contrôles d'interface de diverses manières. Par exemple

1) La commande SWITCH_ALL du langage de balisage permet de définir l'état d'activation de tous les éléments d'un groupe. Supposons qu'il y ait 10 boutons radio dans un groupe. Cette commande fera basculer les boutons eux-mêmes lorsqu'ils seront cliqués, sans code supplémentaire. La même chose s'applique à n'importe quel élément - étiquettes, boutons simples, cases à cocher ....... Tout élément sur lequel on peut cliquer. Elle peut même faire basculer différents types d'éléments. Il est très pratique d'utiliser cette commande s'il y a beaucoup d'éléments. Si vous devez faire basculer des éléments individuels au sein d'un groupe, leurs noms sont répertoriés dans SWITCH, . .END, ...

2.2 La commande SYNC agit de la même manière que le paramètre élément. Elle synchronise la modification des valeurs des paramètres. Par exemple, connectons un curseur à une boîte de saisie avec un bouton, de sorte que lorsque vous entrez une valeur dans la boîte de saisie, le curseur se déplace jusqu'à la position souhaitée. Ou encore, déplacez la poignée du curseur et la valeur de la boîte de saisie qui lui est liée changera. Si différents éléments ont des paramètres, il est possible de synchroniser les valeurs des paramètres de ces éléments. La fonction "Set_SYNC()" peut vous aider à cet égard.

3. lorsque l'on appuie sur l'élément principal, C.word BLOCKS ouvre la liste des éléments à verrouiller. la fonction "Set_lock_elements()" est en partie responsable de l'exécution de cette commande.

4.4. La fonction " Set_link_between_fields_and_tabs() " fait exactement ce que son nom suggère : elle crée des liens entre les onglets cliqués et l'espace des éléments dans la fenêtre ouverte. En d'autres termes, elle gère le phénomène des éléments qui lui sont assignés.


Peut-on considérer cela comme la base d'un constructeur ? Bien au contraire, ce n'est qu'une partie du puzzle, qui en compte plusieurs. La base du constructeur est éparpillée dans de nombreux dossiers, et non à un seul endroit pour des raisons objectives.


D'ailleurs, au départ, je voulais publier les constructeurs dans un seul fichier et les rassembler. Il s'est avéré que cela représentait ~37 000 lignes. Mais même dans ce fichier, je ne pouvais pas indiquer la base du constructeur parce qu'elle ne pouvait pas être rassemblée en un seul endroit pour des raisons techniques.


J'espère que mon explication a été utile, et maintenant je vais travailler sur la version). (S'il y a encore des questions, j'y répondrai du mieux que je peux).

D'accord, merci !
 
hini #:
Comment puis-je me débarrasser des plus de cinq mille avertissements qui sont générés lors de la compilation, dont un grand nombre dans les fichiers de langage de balisage ?
Pour autant que je sache, vous ne pouvez vous en débarrasser qu'en corrigeant les avertissements.
 
Enrique Enguix #:
Pour autant que je sache, on ne peut se débarrasser des avertissements qu'en les corrigeant.
Existe-t-il des directives permettant de désactiver certains avertissements ?
Comme le dit l'auteur, corriger les avertissements en modifiant le code source n'est pas possible pour ce projet.
 
Peut-être que l'éditeur ME devrait ajouter une fonction permettant de filtrer l'affichage des avertissements. Comme le fait l'IDE VS.
 
J'ai le plaisir de vous annoncer que la première version complète du constructeur est disponible aujourd'hui.

Nous n'allons pas avancer à pas de géant. Nous allons tout faire de manière classique. Tout d'abord, nous allons créer notre première fenêtre.

L'archive sera présente :

1. Indicateur KIB-source.mq5

2. Dossier (1) KIB v1

3. Dossier (2) KIB PROJECTS


Pour commencer à travailler :

1. Ouvrez l'archive.

2. Copiez les dossiers des points 2 et 3 dans le dossier include (en remplaçant les anciens).

3. Copier l'indicateur KIB-source dans le dossier indicators (en remplacement de l'ancien).

4. Téléchargez l'Expert Advisor (1) KIB v1 sur un graphique MT5 libre.

5. Compiler l'indicateur KIB-source (nouveau) et le placer sur le même graphique.

6. Compilez à nouveau l'indicateur.

7. Une fenêtre avec un bouton doit apparaître sur le graphique.

8. Ouvrez le fichier de connexion de cette fenêtre dans l'indicateur KIB-source (dans ME). Vous verrez le code KIB de cette fenêtre et les commentaires qui s'y rapportent.

9. Continuez ensuite...


A ce soir.


 

Téléchargez le communiqué.


** IMPORTANT (j'ai oublié de le dire) !!!

N'OUBLIEZ PAS DE RECOMMANDER (1) KIB v1.mq5 avant de l'installer sur la carte.

Dossiers :
KIB-v26.06.24.zip  1558 kb
 
Реter Konow #:

Saisissez le communiqué de presse.


**Important (j'ai oublié de le mentionner) ! !!!!

Avant d'installer KIB v1.mq5 sur vos cartes, n'oubliez pas de recommander (1) KIB v1.

Bonne nouvelle !
 
hini #:
Bonne nouvelle !

Merci.

Pour ceux qui veulent commencer à expérimenter la création de fenêtres et d'éléments, ou simplement pour ceux qui sont curieux, j'ai préparé une liste des erreurs les plus grossières dans l'écriture du code cybernétique. Ces connaissances vous seront très utiles.

Je joins les fichiers en anglais et en russe.

P.S. Les deux fichiers seront inclus dans la prochaine version, mais vous pouvez les lire dès maintenant.

 
Le russe pour moi même dans les noms des répertoires c'est rédhibitoires