Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Pyotr, je ne te comprends pas.
Vous n'avez pas répondu aux questions. Il est important pour les programmeurs de savoir comment interagir avec votre interface graphique pendant qu'ils travaillent. Voici un exemple de mon interface graphique. J'ai cliqué sur le raccourci du thème clair/foncé et cet événement a immédiatement déclenché la fonction permettant de modifier les couleurs et les lignes d'arrière-plan. Comment réaliser cette interaction ?
Que signifie "L'utilisateur n'interagira PAS (du tout) avec mon code " ? Le programmeur doit interagir non pas avec le code, mais avec les événements que le code doit générer.
C'est bien. Je vais essayer d'utiliser des images pour plus de clarté.
1.
2.
3.
4.
Notre feuille d'options, la case à cocher dans la fenêtre et le fichier Internal_API :
5. Exécution d'actions sur la fenêtre et les éléments dans le code utilisateur :
6.
INTELLISENSE NOUS DIT TOUT!!!
Je vais essayer de poser une question différente, en prenant l'exemple du développement web. Parce que votre interface graphique est écrite en utilisant le langage de balisage que vous avez créé, le développement web a également son propre langage de balisage (HTML) et son propre langage de style (CSS).
Le développement web a également son propre langage de balisage (HTML) et son propre langage de style (CSS). Si vous avez créé un site web uniquement en HTML, vous pouvez créer des contrôles en HTML pur.
Voici un exemple avec une case à cocher. Mais dans ce cas, le site sera mort, car il ne se passera rien lorsque les contrôles fonctionneront. Pour que quelque chose se passe, vous devez mettre en place un gestionnaire pour chaque événement en utilisant JavaScript et la fonction addEventListener Voici un exemple d'un tel gestionnaire: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Ma question principale peut être reformulée : Comment implémentez-vouspour le programmeur le gestionnaire d'événement généré par l'interface graphique lorsque l'utilisateur travaille.
Comme je l'ai dit, je l'ai implémenté par le fait que lorsque l'interface graphique est générée par programme, chaque contrôle se voit attribuer sa propre fonction de gestion d'événements en utilisant un pointeur vers une fonction.
JE VAIS ESSAYER DE POSER UNE AUTRE QUESTION.
Je vais essayer de poser une question différente, en prenant l'exemple du développement web. Parce que votre interface graphique est écrite en utilisant le langage de balisage que vous avez créé, le développement web a également son propre langage de balisage (HTML) et son propre langage de style (CSS).
Le développement web a également son propre langage de balisage (HTML) et son propre langage de style (CSS). Si vous avez créé un site web uniquement en HTML, vous pouvez créer des contrôles en HTML pur.
Voici un exemple avec une case à cocher. Mais dans ce cas, le site sera mort, car il ne se passera rien lorsque les contrôles fonctionneront. Pour que quelque chose se passe, vous devez mettre en place un gestionnaire pour chaque événement en utilisant JavaScript et la fonction addEventListener Voici un exemple d'un tel gestionnaire: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Ma question principale peut être reformulée : Comment implémentez-vouspour le programmeur le gestionnaire d'événement généré par l'interface graphique lorsque l'utilisateur travaille.
Comme je l'ai dit, je l'ai implémenté par le fait que lorsque l'interface graphique est générée par programme, chaque contrôle se voit attribuer sa propre fonction de gestion d'événements en utilisant un pointeur sur la fonction.
Nicolas, tout fonctionne. Vous l'essaierez vous-même plus tard. Tout est beaucoup plus simple que vous ne le pensez. J'ai réalisé de nombreuses interfaces fonctionnelles à l'aide de cette technologie. Alors... Vous verrez bien assez tôt.
Nikolaï, ça marche. Tu l'essaieras toi-même plus tard. C'est beaucoup plus simple que vous ne le pensez. J'ai réalisé de nombreuses interfaces fonctionnelles en utilisant cette technologie. Alors... Tu verras bien assez tôt.
D'accord. J'attendrai, je veux vraiment comprendre votre création.
Cependant, pour faciliter la compréhension par l'exemple, veuillez créer un simple indicateur vide (ou Expert Advisor), dans lequel votre interface graphique est connectée sous la forme d'un bouton séparé, lorsque vous appuyez dessus, la couleur de fond de la fenêtre passe du noir au blanc et du blanc au noir. Il est souhaitable que le changement de couleur ait lieu dans le corps de l'indicateur et non dans l'un des fichiers connectés.
Pour simplifier l'écriture, voici le code de la fonction qui doit être exécutée dans le corps du programme lorsque l'on appuie sur le bouton :
D'accord. Je veux vraiment comprendre votre création.
Cependant, pour faciliter la compréhension par un exemple, veuillez créer un simple indicateur vide (ou Expert Advisor), dans lequel votre interface graphique est connectée sous la forme d'un bouton séparé, lorsque vous appuyez dessus, la couleur de fond de la fenêtre passe du noir au blanc et du blanc au noir. Il est souhaitable que le changement de couleur ait lieu dans le corps de l'indicateur et non dans l'un des fichiers connectés.
Pour simplifier l'écriture, voici le code de la fonction qui doit être exécutée dans le corps du programme lorsque l'on appuie sur le bouton :
Ok. Je vais faire la mise en œuvre la plus simple possible pour la compréhension. Pas de fioritures).
D'accord. Je vais faire la mise en œuvre la plus simple possible pour la compréhension. Pas de fioritures).
C'est très bien ! Je vous remercie.
Nikolay, je ne peux pas écrire un appel de fonction dans le corps de l'indicateur, parce que son gestionnaire se trouve dans le fichier Internal_API.mqh.
En d'autres termes, je peux appeler votre fonction en cas d'appui sur le bouton à partir de son gestionnaire dans ce fichier. Cependant, je peux définir les états du bouton de manière programmatique à partir du corps de l'indicateur sur l'événement de la minuterie, par exemple. Mais dans ce cas, je n'ai pas besoin d'appuyer sur le bouton. En résumé, il existe différents éléments. Certains d'entre eux peuvent être gérés dans le corps de l'indicateur (principalement les éléments non interactifs, comme la barre de progression, par exemple) et il y a ceux qui ont un gestionnaire dans le fichier Internal_API.mqh et qui fonctionnent à partir de là. Bien que leurs états puissent être définis de manière programmatique à partir du corps de l'EA/indicateur.
Votre tâche est terminée. (si carré blanc - cliquez)
Code :
J'ai commenté votre fonction parce que le compilateur jurait. Je l'ai simplifiée.
Voici le code dans le fichier Internal_API.mqh
D'ailleurs, vous devriez ajouter :
Le fichier Internal_API.mqh contient des gestionnaires de contrôle et est spécifiquement conçu pour les connecter.
Ce fichier est destiné à l'utilisateur et ne fait pas partie du moteur ou de tout autre code.
Ce fichier est destiné à l'utilisateur et ne fait pas partie du moteur ou de tout autre code.
Je vois, Peter.
Ce n'est pas pratique, bien sûr, pour un développeur.
Il y a beaucoup de code et de mouvements inutiles, mais la variante avec un pointeur sur une fonction est bien meilleure.