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

 
Edgar Akhmadeev #:

La demande est là. Le silence de la plupart sur le sujet est normal. Les gens sont dans l'expectative. Jusqu'à présent, aucun grand projet n'a été mené à bien. Il est toujours difficile de le mener à bien seul et sans financement. Jusqu'à présent, je ne connais qu'un seul projet mené à bien par une seule personne - "VLADIK BRUTAL" sur Steam.

C'est une tactique étrange que de se cacher et d'attendre. :) Si les gens étaient activement impliqués, je n'aurais pas changé de priorités et beaucoup de choses seraient terminées maintenant. Cependant, les tâches principales que j'ai énumérées seront achevées indépendamment de la demande, parce que je les considère comme un intérêt personnel. Mais je ne suis pas avide, je partagerai avec la communauté). Je ne fixerai simplement pas de calendrier précis.

Je prévois de tout terminer avant la nouvelle année. Vous avez besoin de tableaux dynamiques, n'est-ce pas ? Ce sera certainement le cas.

J'aimerais également vous rappeler que des tableaux normaux sont disponibles dans l'assemblage et qu'ils fonctionnent bien. Et maintenant, grâce à la présence de la gestion de l'interface du programme, il est devenu facile de travailler avec eux.

Il y a beaucoup de leçons sur le langage de balisage, parce que la matière est couverte à moins de la moitié, mais encore une fois - qui en a besoin ? Moi, je sais déjà tout. Qui d'autre ? Je n'entends aucune demande. Mais composer chaque leçon est un travail considérable, et chaque billet de tutoriel est un mini-article. C'est beaucoup de travail.

Voici les questions. Je pense que vous pouvez comprendre. Mais les tableaux et les graphiques dynamiques ont beaucoup de sens pratique et ils apparaîtront.
 
Реter Konow #:
C'est une tactique étrange que de se cacher et d'attendre. :) Si les gens participaient activement, je ne changerais pas mes priorités

Je ne parlerai qu'en mon nom. Je ne sais pas comment aider. Comment participer activement. Tout ce que je pouvais faire, je l'ai fait. J'ai écrit le code sur la base des informations dont je disposais, j'ai créé une belle interface. Puis je suis coincé dans l'irréalisation de ce dont j'ai besoin personnellement. Et je ne peux pas étudier des leçons sur la façon d'utiliser ce que je ne peux pas encore mettre en pratique. Je suis un praticien. C'est pourquoi j'aurai certainement besoin de cours le moment venu.

Différents boutons de commande, et des boutons pour contrôler différentes choses - personnellement, j'en aurai besoin plus tard. Quand j'y arriverai. Pour l'instant, j'attends une interface pour un affichage pratique et beau. Et ce n'est pas pressé, c'est pourquoi nous ne vous poussons pas dans vos retranchements. Nous comprenons que vous n'êtes pas en service. J'ai posé une question non pas parce que je suis pressé, mais parce qu'ils ont disparu quelque part.

 
Edgar Akhmadeev #:

Je ne parlerai qu'en mon nom. Je ne sais pas comment aider. Comment participer activement. J'ai fait tout ce que je pouvais. J'ai écrit le code en fonction des informations disponibles et j'ai obtenu une belle interface. Puis je suis coincé dans l'irréalisation de ce dont j'ai besoin personnellement. Et je ne peux pas étudier les leçons sur la façon d'utiliser ce que je ne peux pas encore mettre en pratique. Je suis un praticien. C'est pourquoi j'aurai certainement besoin de leçons le moment venu.

Différents boutons de commande, et des boutons pour contrôler différentes choses - personnellement, j'en aurai besoin plus tard. Quand j'y arriverai. Pour l'instant, j'attends une interface pour un affichage pratique et beau. Et ce n'est pas pressé, c'est pourquoi nous ne vous poussons pas dans vos retranchements. Nous comprenons que vous n'êtes pas en service. Si j'ai posé une question, ce n'est pas parce que je suis pressé, c'est tout simplement parce que j'ai disparu quelque part.

Comme je l'ai compris, vous ne savez pas encore de quelle interface votre application a besoin. :) Je ne peux pas vous aider. Mais quand vous aurez trouvé, faites un croquis. Il est probable que les capacités existantes de mon concepteur et de mon moteur seront plus que suffisantes. Comme je l'ai dit, il ne manque que trois choses principales :

1. Les tableaux dynamiques sont des tableaux dont le nombre de lignes est illimité.

2. Tableaux générés - il s'agit de tableaux collectés par la fonction "à la volée". Ils sont nécessaires pour l'édition rapide, le tri et la comparaison de paramètres individuels extraits de grands ensembles de données.

3. des graphiques scientifiques comme ceux de R. Ils sont déjà implémentés dans la bibliothèque standard CGraphic et dans la bibliothèque d'Anatoly Kozharsky. Je serai implémenté à ma façon.

Tout le reste se trouve dans mon constructeur. Réfléchissez aux besoins de votre application. Faites un croquis. Postez-la ici. Je vous aiderai à écrire du code Kib.
 
Edgar Akhmadeev #:

... J'ai écrit le code en fonction des informations disponibles et j'ai obtenu une belle interface. Puis je me suis heurté à la non-réalisation de ce dont j'ai besoin personnellement. ....

D'ailleurs, ce qui ne fonctionnait pas à l'époque fonctionne déjà, car il existe un contrôle logiciel de l'interface. Je me souviens qu'à l'époque, il n'était pas possible d'envoyer des paramètres dans les tableaux. Aujourd'hui, c'est facile. Votre tableau peut fonctionner et sortir des valeurs. C'est déjà implémenté dans le moteur. C'est juste pour mémoire.
 

Non seulement je sais ce qu'il faut, mais j'ai fait la maquette. Voici votre code corrigé et votre mise en page https://www.mql5.com/ru/forum/467909/page37#comment_53863397.

J'ai besoin exactement (selon vos termes) de tableaux dynamiques et générés. C'est-à-dire ajouter par programme un nombre indéfini de lignes (limité par le bon sens), les remplir, faire défiler commodément le tableau lui-même, et non le cadre qui l'accompagne. De sorte que les titres restent en place.

C'est ce que vous avez fait jusqu'à présent. C'est pourquoi je reste tranquillement assis sur mon cul et j'attends. Je ne suis pas pressé moi-même, et je ne suis pas pressé pour vous. Je vais vivre éternellement. Ça marche pour l'instant.

Галерея UI написанных на MQL - Попробуйте разместить иконку и текст на элементах.
Галерея UI написанных на MQL - Попробуйте разместить иконку и текст на элементах.
  • 2024.07.02
  • Реter Konow
  • www.mql5.com
По сути есть только два варианта расположения текста и иконки внутри кнопок. Можно использовать как шаблон для любых элементов с текстом и иконкой. Если кнопки размещаются во фрейме командой TOP - все отлично. а название кнопки портится Баг или мой фейл - не пойму
 
Edgar Akhmadeev #:

Non seulement je sais ce qu'il faut, mais j'ai fait la maquette. Voici votre code corrigé et la mise en page https://www.mql5.com/ru/forum/467909/page37#comment_53863397

J'ai besoin exactement (dans vos termes) de tableaux dynamiques et générés. C'est-à-dire ajouter par programme un nombre indéfini de lignes (enfin, limité par le bon sens), les remplir, faire défiler commodément le tableau lui-même, et non le cadre qui l'accompagne. Pour que les titres restent en place.

C'est ce que vous avez fait jusqu'à présent. C'est pourquoi je reste tranquillement assis sur mon cul et j'attends. Je ne suis pas pressé moi-même, et je ne suis pas pressé pour vous. Je vais vivre éternellement. Ça marche pour l'instant.

Je vois. Les tableaux dynamiques et générés sont nécessaires pour moi et pour vous, alors ils le seront. J'essaierai de terminer toutes les tâches avant le Nouvel An.
 
Où en sommes-nous ?
 
hini #:
Où en sommes-nous ?
Aujourd'hui, le concept de tableaux dynamiques et générés est en cours d'élaboration, et ces tableaux sont censés fonctionner en harmonie avec les graphiques scientifiques. Il ne s'agit pas seulement de développer la partie technique - tableaux et graphiques - mais aussi de trouver des moyens de "symbiose" entre ces outils dans le travail analytique.

En voici un exemple :

1. Les données sont téléchargées dans un fichier. Des algorithmes spéciaux les répartissent dans des tableaux, des lignes et des colonnes.

2. L'utilisateur accède au tableau souhaité, sélectionne une ligne et double-clique pour dessiner une courbe ou un diagramme à l'aide des chiffres de cette ligne ou de cette colonne.

3. L'utilisateur sélectionne la cellule requise du tableau et demande la construction d'un nouveau tableau à l'aide des données associées au paramètre qui s'y trouve.

4. L'utilisateur passe des tableaux aux graphiques, des graphiques aux tableaux et aux diagrammes circulaires, "à la volée", en assemblant ou en générant de nouveaux tableaux et graphiques. Par de simples clics et en introduisant des paramètres dans la fenêtre, il peut visualiser les données sous différents "angles" et dans différentes combinaisons au sein des représentations graphiques qui apparaissent.

Tout cela contribue sans aucun doute à un travail productif et à la recherche de relations et de modèles dans les données.

Je prévois de mettre en place un système pratique de travail dynamique avec des données au moyen de tableaux, de graphiques et de diagrammes.

La chose la plus importante est le bon concept. C'est lui qui prend le plus de temps à former. La mise en œuvre technique prend relativement peu de temps.

P.S. Je prépare également mon premier article sur le constructeur d'interface graphique et le langage de balisage.

P.S.S. Au moment où l'article sera publié, je préparerai une version pour la base de code, afin que ceux qui le souhaitent puissent télécharger le constructeur.

En général, il y a beaucoup de travail).

 
Je vais vous dire quels sont mes projets.

1. Créer un manuel sur le langage de balisage.

Il est nécessaire de rassembler un manuel complet sur le langage de balisage, en l'organisant en parties, chapitres et sujets.


2. Rédiger des articles sur le constructeur d'interface et le langage KIB.

Diviser le matériel d'apprentissage fini en une série d'articles, en y ajoutant des codes, des diagrammes, des images et des gifs.

3. Avant de publier le premier article, ouvrir un fil de discussion spécialisé dans le seul but de publier des modèles de code KIB. Ceux qui le souhaitent pourront facilement construire une interface graphique en empruntant des éléments prêts à l'emploi. Ils pourront également ajouter des codes KIB s'ils le souhaitent.

4. Avant la publication du premier article, publiez la dernière version du constructeur dans la base de code.

Sur cette page, publiez un manuel d'instructions détaillé avec des images, des gifs et des vidéos.

5. Au début de l'article, donnez un lien vers le constructeur et les instructions d'installation, et à la fin de l'article, laissez un lien vers la branche contenant les modèles. Ainsi, immédiatement après avoir lu l'article, les lecteurs pourront essayer de créer une interface graphique, en empruntant des fenêtres ou des groupes d'éléments prêts à l'emploi. Puis, au fur et à mesure de leur apprentissage, ils expérimenteront et amélioreront leurs interfaces.

6. A mon avis, pour que les lecteurs comprennent facilement et maîtrisent rapidement les capacités du concepteur, il est nécessaire de simplifier la présentation du matériel et de fournir abondamment des articles avec des images informatives, des schémas lisibles et des codes commentés. C'est pourquoi j'écrirai des articles avec la devise "plus c'est simple, mieux c'est", en m'efforçant d'atteindre la simplicité logique et la clarté du sens.

7. Avant de publier le constructeur dans la base de code, je dois effectuer quelques travaux préliminaires :

a) Traduire les noms des catologues en anglais.

b) Supprimer complètement tous les avertissements qui apparaissent lors de la compilation du constructeur (pas le code KIB).

c) Corriger quelques bogues précédemment remarqués dans le travail des contrôles.

d) Mettre en place un "stub" pour déboguer le code utilisateur connecté au moteur.

Selon cette idée, le moteur sera désactivé pendant le débogage en commentant simplement sa ligne, et seuls le noyau graphique et les fonctions d'enveloppe du fichier de service "UIDATA.mqh" resteront connectés. Toutes les autres fonctions régulières du constructeur seront définies comme des "fonctions vides" servant de "bouchons" dans un fichier spécial. La ligne de ce fichier sera décommentée par l'utilisateur avant le débogage.

C'est le concept, mais je ne l'ai pas encore vérifié en pratique.


8. Le premier article sera le plus difficile pour moi, parce qu'il me demandera de décrire brièvement l'ensemble du constructeur et du langage de balisage, en donnant aux lecteurs une idée complète de leur but, de leurs capacités et de leur dispositif. Je dresserai également la liste du contenu des articles à venir et j'ajouterai un plan clair de distribution future du matériel pédagogique.

À mon avis, les articles sont des leçons et, par conséquent, la présentation du matériel doit être pédagogique.

P.S. Au départ, j'ai décidé de m'appuyer sur l'exemple des articles bien connus d'Anatoly Kozharsky sur l'interface graphique - Easy and Fast library (bibliothèque facile et rapide). Pour moi, il s'agit du résultat le plus complet sur ce sujet. En même temps, je reconnais respectueusement la contribution d'autres auteurs talentueux qui ont fait des tentatives louables pour créer des bibliothèques d'interface utilisateur avant et après les articles d'Anatoly. J'aimerais mentionner tout particulièrement Dmitry Fedoseev et Artem Trishkin.

Ainsi, après avoir accepté les articles d'Anatoly comme une norme de qualité et un indicateur de professionnalisme, j'ai "essayé" leur format sur mon propre matériel et j'ai été forcé de reconnaître l'incompatibilité. Les différences d'approches et de réalisations sont trop importantes. Je vais donc devoir trouver et peaufiner mon style, sans oublier de respecter les normes élevées fixées par mes prédécesseurs en matière d'écriture.
 

Le processus de travail dans l'éditeur visuel GUI sur MT5.

Il y a 4 ans :

(Cliquez sur l'image).


P.S. Le contexte de la démonstration est décrit dans le post ci-dessous.