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

 
Alexandr Andreev:

Dans ce cas, vous devez connaître par cœur les noms de tous les éléments, mais ici, dans le fichier, tout est déjà généré

Comme vous pouvez le voir dans la vidéo, vous devez de toute façon connaître le nom des éléments. En principe, c'est logique.

Mais je ne comprends pas comment on peut donner des noms significatifs aux contrôles par soi-même. Apparemment, il n'y a aucun moyen.

 
Alexandr Andreev:

Il est plus facile de se souvenir de ses propres variables que d'apprendre celles de quelqu'un d'autre.

En général, lecode devrait avoir un minimum de variables globales, toutes mises en œuvre en passant des morceaux de mémoire et en traitant plusieurs valeurs à la fois. Il est logique que ..... .... .... HH a essayé de couper les mots se rapportant directement aux objets.

En général, il est plus facile d'utiliser des colliers de serrage ordinaires.

La vidéo montre que Petr a construit TOUS ces systèmes avec des variables globales.

La fonction de traitement des messages est la seule pour l'ensemble du programme et seule une valeur lui est envoyée.

Cette fonction unique vérifie les modifications apportées à tous les contrôles disponibles qui se trouvent dans le tableau global. Et l'altération de cette fonction augmentera au fur et à mesure que le nombre d'éléments du formulaire augmentera.

Peter a déclaré que vous n'aurez pas à creuser dans son code : eh bien, c'est exactement le désordre que vous devrez creuser très sérieusement. Cela pourrait être facilement évité si, pour chaque cas, Peter générait une méthode d'événement par défaut passant le type, le nom et la valeur du contrôle. L'ensemble serait alors facilement traité dans le corps de l'EA principale.

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

Comme vous pouvez le voir dans la vidéo, vous devez de toute façon connaître le nom des éléments. Cela a du sens en principe.

Mais je ne comprends pas comment vous pouvez donner vous-même des noms significatifs aux contrôles. Apparemment, il n'y a aucun moyen.

Les éléments qui comportent du texte - les boutons par exemple, vous pouvez écrire les noms directement sur eux (double-clic), ou dans le deuxième champ de saisie supérieur du panneau des propriétés. Autre - uniquement dans le champ du nom sur le panneau de propriétés. Vous pouvez également y spécifier le nom des fenêtres (champ le plus haut).
 
Реter Konow:
Et qu'entendez-vous par environnement ?

langage de balisage

 

La vidéo a clairement montré que vous ne pouvez pas obtenir une valeur d'un contrôle spécifique à un endroit spécifique. La valeur ne peut être récupérée qu'au moment d'un événement de changement dans cette grande feuille. Et tout cela parce qu'il n'y a rien à quoi se référer puisqu'il n'y a pas d'objets...

Pyotr a dit qu'il faudrait au moins un an pour modifier son code au moins légèrement... Je n'en suis pas si sûr. L'édition régulière de textes, ce que sont les morceaux de code, vous permettra de remplacer très rapidement une chose par une autre dans ceux-ci. Mais c'est une toute autre chanson...

 
Pour nommer un élément dans la boîte de propriétés, l'élément doit être en focus. Pour faire simple, il faut cliquer dessus et toutes ses propriétés s'afficheront dans le panneau des propriétés et pourront être modifiées. C'est l'approche classique des éditeurs de vis.
 
Реter Konow:
Les éléments qui comportent du texte - les boutons par exemple, vous pouvez écrire le nom directement dessus (double-clic), ou dans le deuxième champ de saisie en haut du panneau des propriétés. Autres éléments - uniquement dans le champ du nom sur le panneau de propriétés. Vous pouvez également y spécifier le nom des fenêtres (champ le plus haut).

J'ai revu la vidéo - oui, c'est vrai, désolé, je n'ai pas remarqué tout de suite. C'est vraiment une approche classique. Le nom de l'élément et le texte qu'il contient (contenu) peuvent être différents.

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

La vidéo a clairement montré que vous ne pouvez pas obtenir une valeur d'un contrôle particulier à un endroit particulier. La valeur ne peut être récupérée qu'au moment d'un événement de changement dans cette grande feuille. Et tout cela parce qu'il n'y a rien à quoi se référer puisqu'il n'y a pas d'objets...

Pyotr a dit qu'il faudrait au moins un an pour modifier au moins légèrement son code... Je n'en suis pas si sûr. L'édition régulière de textes, ce que sont les morceaux de code, vous permettra de remplacer très rapidement une chose par une autre dans ceux-ci. Mais c'est une autre histoire...

Eh, je suppose que je vais devoir faire une autre vidéo... J'ai oublié de montrer comment récupérer les valeurs des éléments. Le même appel, mais avec des crochets vides, renvoie la valeur actuelle de l'élément.

Il est également possible, par le même appel, de changer les couleurs et les états de l'élément.

Aujourd'hui je vais faire une petite démo dans un gifka.
 
Реter Konow:
Eh, je suppose que je vais devoir faire une autre vidéo... J'ai oublié de montrer comment l'EA obtient la valeur des éléments. Le même appel, mais avec des crochets vides, renvoie l'élément courant.

Lorsque vous ouvrez l'éditeur, je ne comprends pas pourquoi vous ne "déployez" pas les panneaux "éditeur de propriétés" et "bibliothèque d'éléments" sur les bords du graphique, et pourquoi ils se chevauchent ? C'est une petite chose dans le flux global bien sûr, mais c'est quelque chose qui attire l'attention.

 
Реter Konow:
Eh, je suppose que je vais devoir faire une autre vidéo... J'ai oublié de montrer comment l'Expert Advisor obtient la valeur des éléments. Le même appel, mais avec des crochets vides, renvoie la valeur actuelle de l'élément.

Il est également possible de changer les couleurs et les états d'un élément avec le même appel.

Je vais faire une petite démo dans un gif aujourd'hui.

Ah, bien, oui. Vous auriez pu deviner que... j'étais stupide. Puisque tout dans votre programme est basé sur des variables globales et qu'il n'y a pas de concept de contexte, il est évident que tout peut être obtenu de n'importe quoi à n'importe quel endroit du programme.