GUI à l'initiative de la foule. Test bêta ouvert. - page 29

 
Alexandr Andreev:

Eh bien, il y avait un demi-exemple. Il est clair qu'il y a un dossier comme pièce d'une fonction de travail. Où l'interrupteur (boutons) est généré et où nous avons la possibilité d'écrire des réactions aux pressions des boutons.

Oui, c'est un semi-exemple. Je n'ai pas pu aller jusqu'au bout à cause de ce bug avec les positions.

Les réactions peuvent porter sur des boutons, des cases à cocher, des boîtes de saisie, des curseurs, des listes déroulantes, des groupes de boutons radio.

Pour l'instant, l'éditeur vous permet de créer ces éléments. Des gestionnaires d'événements sont créés dans le fichier à leur intention, dans lequel l'utilisateur prescrit les réactions.

De plus, les fonctions sont imprimées dans le fichier par lequel l'utilisateur accède aux éléments :

1. Obtenir la valeur actuelle de l'élément.
2. Définir une nouvelle valeur à l'élément.

Les fonctions sont facilement sélectionnées dans une liste d'intellisense qui répond aux préfixes E_ (éléments) et W_ (fenêtres).

Il y aura un exemple complet dans la soirée.
 
En général, le communiqué sur la mise en œuvre de la réponse du bouton est tout à fait viable. C'est juste le design qui a besoin d'être travaillé.
 
Реter Konow:
Oui, c'est un demi-exemple. Je n'ai pas pu aller jusqu'au bout à cause de ce bug avec les positions.

Les réactions peuvent être inscrites sur des boutons, des cases à cocher, des champs de saisie, des curseurs, des listes déroulantes, des groupes de boutons radio.

Pour l'instant, l'éditeur vous permet de créer ces éléments. Des gestionnaires d'événements sont créés dans le fichier à leur intention, dans lequel l'utilisateur prescrit les réactions.

De plus, les fonctions sont imprimées dans le fichier, par lequel l'utilisateur accède aux éléments :

1. Obtenir la valeur actuelle de l'élément.
2. Définir une nouvelle valeur à l'élément.

Les fonctions sont facilement sélectionnées dans une liste intellisense répondant aux préfixes E_ (éléments) et W_ (fenêtres).

Il y aura un exemple complet dans la soirée.

Err quelles autres fonctions sélectionner... il n'est pas nécessaire de faire tout cela. Générer un fichier dans lequel, si j'ai bien compris, les boutons valides sont affectés au commutateur.C'est tout. Arrêt complet. A partir de là, c'est à chacun d'appeler ses réactions à ce bouton. Par exemple pour sauvegarder le fait qu'il a été pressé ou autre. L'environnement pour le retour de la pression, je pense inutile.

 
Alexandr Andreev:

Err, quelles autres caractéristiques choisir... Il n'y a pas besoin de tout ça. Générer un fichier dans lequel, si j'ai bien compris, vous attribuez des boutons valides à l'interrupteur. C'est tout. Arrêt complet. A partir de là, c'est à chacun d'appeler ses réactions à ce bouton. Par exemple, pour sauvegarder qu'il a été pressé ou autre. L'environnement pour le retour de la pression, je pense inutile.

Il est préférable de travailler sur la conception

 
Alexandr Andreev:

Err, quelles autres caractéristiques choisir... Il n'y a pas besoin de tout ça. Générer un fichier dans lequel, si j'ai bien compris, vous attribuez des boutons valides à l'interrupteur. C'est tout. Arrêt complet. A partir de là, c'est à chacun d'appeler ses réactions à ce bouton. Par exemple pour sauvegarder le fait qu'il a été pressé ou autre. L'environnement pour le retour d'information par clic, je pense que c'est inutile.

Et ici, nous ferions mieux de mettre en œuvre l'environnement par le biais de classes. On appelle aussi le menu des onglets, etc. etc.

 
Alexandr Andreev:

Err, quelles autres caractéristiques choisir... Il n'y a pas besoin de tout ça. Générer un fichier dans lequel, si j'ai bien compris, vous attribuez des boutons valides à l'interrupteur. C'est tout. Arrêt complet. A partir de là, c'est à chacun d'appeler ses réactions à ce bouton. Par exemple pour sauvegarder le fait qu'il a été pressé ou autre. Je pense que l'environnement pour le feedback est inutile.

Vous ne comprenez pas.

1. Nous devrions entrer les réactions dans le gestionnaire, d'accord.

2. Si nous voulons obtenir la valeur actuelle d'un élément (par exemple, le texted'un champ de saisie), nous appelons sa fonction à partir de la liste prête.
 
Alexandr Andreev:

Et l'environnement devrait être mis en œuvre par le biais de classes. Il y a aussi les appels au menu des onglets et ainsi de suite.

Ne brandissons pas l'expression "nous avons besoin de cours" sous le nez de Pierre. Attendons au moins la vidéo, puis nous poserons des questions.

J'ai déjà suggéré à Peter de modifier son "noyau" avec une variante très simple : utiliser des structures. Au diable ces cours, si une personne ne veut pas s'y plonger - c'est son affaire.

Mais l'utilisation de structures ne ferait que faciliter la vie de Peter lui-même.

Ce à quoi le "noyau", c'est-à-dire le tableau global, ressemble maintenant : un tableau multidimensionnel, ou du moins bidimensionnel. La deuxième dimension contient les propriétés d'un certain type de contrôle par des index. Les propriétés sont également accessibles par leur nom, puisque les index sont remplacés par des définitions et que nous obtenons une "pseudo-référence" par nom. En fait, tout est construit sur des définitions, comme ce "langage de balisage" dans le code de Peter.

J'ai déjà suggéré que Peter devrait implémenter une structure, de sorte que le tableau global pourrait être rendu unidimensionnel et que les propriétés pourraient être référencées directement par leur nom. La construction du noyau serait également simplifiée, car il suffirait d'ajouter de nouveaux accessoires à la structure originale et de les désigner par leur nom. Et le code lui-même pourrait être raccourci en supprimant la liste des nombreuses définitions et méthodes pour les utiliser.

D'un côté, ce n'est pas une classe, mais d'un autre côté, cela rendrait la manipulation du tableau global beaucoup plus facile pour Peter. En outre, Peter a déjà une certaine expérience du travail avec une structure similaire : un syndicat.

Mais Peter a sa propre façon de sensei et nous allons attendre le résultat...

 

Je propose le schéma suivant comme exemple transversal : Créez un formulaire avec trois champs : montant de la transaction, prix SL et prix TP, deux boutons : BUY et SELL.

Créer un Expert Advisor, connecter le GUI comme un inluder. Ajoutez une variable pour l'offre initiale. Lorsqu'il est initialisé, le montant initial de l'offre est transmis au champ approprié dans l'interface graphique.

Créer dans le conseiller expert la fonction "Open Deal". Cette fonction doit être appelée dès qu'un des boutons de l'interface graphique est cliqué.

Dans la fonction elle-même, nous "découvrons" quelle commande a été donnée et demandons également à l'interface graphique quel est le taux actuel et, sur la base de ces données, nous ouvrons la transaction correspondante.

 
Алексей Барбашин:

Je propose le schéma suivant comme exemple transversal : Créez un formulaire avec trois champs : montant de la transaction, prix SL et prix TP, deux boutons : BUY et SELL.

Créer un Expert Advisor, connecter le GUI comme un inluder. Ajoutez une variable pour l'offre initiale. Lorsqu'il est initialisé, le montant initial de l'offre est transmis au champ approprié dans l'interface graphique.

Créer dans le conseiller expert la fonction "Open Deal". Cette fonction doit être appelée dès qu'un des boutons de l'interface graphique est cliqué.

Dans la fonction elle-même, nous "découvrons" quelle commande a été donnée et demandons également à l'interface graphique quel est le taux actuel et, sur la base de ces données, nous ouvrons la transaction correspondante.

Lot, prise et stop + boutons d'achat/vente... Exemple simple et clair. Je le ferai. J'ajouterai des fonctions pour ouvrir des ordres et obtenir des prix stop.
 
Реter Konow:
Vous ne comprenez pas.

1. Écrire les réactions dans le handler, d'accord.

2. Si nous voulons obtenir la valeur actuelle d'un élément (par exemple, le texte d'un champ de saisie), nous appelons sa fonction dans la liste des éléments prêts.

Pourquoi, ceci est aussi implémentable par une fonction qui est appelée lorsque le champ est rempli et que la valeur d'entrée est du type modèle... tout. Même si c'est comme la ficelle.... il n'y aura toujours pas de remplissage du champ à grande vitesse