Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading
GUI à l'initiative de la foule. Béta-testing ouvert.
Alexey Barbashin, 2020.03.07 21:25
"mais peut-être que c'est plus facile de tout faire en objets" - c'est plus que logique
"Oui, bien sûr, nous nous y fierons en partie." - alors nous sommes tout de suite corrigés :
class CCoordPBase Наследуемся от CObject, то есть: class CCoordPBase : public CObject Хотя наверное можно и по другому: class Control : public CObject
CObject est la classe de base de tous les objets de la bibliothèque des développeurs. Réalisé par analogie avec C++ et C#. L'objet de base (type) dans Sharp est Object.
Les coordonnées et les dimensions sont des propriétés du contrôle, de même que la couleur et l'épaisseur de la bordure, les rayons des arrondis, les icônes et le texte.
Nous devons d'abord définir quel type de contrôle est élémentaire, puis décrire les propriétés de base.
Bien sûr, certaines des propriétés définies précédemment peuvent ne pas être utilisées dans les descendants, ce n'est pas un problème, mais il est préférable que la propriété de base soit la plus universelle.
Voici un exemple de commande universelle simple :
Contient l'arrière-plan, la bordure, le rayon, l'icône et le texte.
Si vous avez besoin d'une étiquette, vous ne spécifiez pas le fond, la bordure et l'icône ; si vous avez besoin d'un panneau, le contenu n'est pas spécifié ; si vous avez besoin d'un bouton avec une image, seule l'icône est spécifiée ; si vous avez besoin d'un bouton avec une image, le fond, la bordure et l'image sont spécifiés.
C'est-à-dire que cette composition est assez universelle pour la plupart des contrôles.
Je vois, la question sur le changement de style au survol avec l'enregistrement des coordonnées... même si c'est déjà assez clair
Existe-t-il une norme biliotec par contrôle ?
L'essence deCObject est de typer tous les objets.
Par exemple, nous avons besoin d'une bibliothèque de listes (liste d'éléments, boîte combo, liste de contrôle, etc.). Pour chaque type d'éléments, nous pouvons créer un type de tableau différent, c'est ce qu'a fait Anatoly, ou nous pouvons utiliser un outil tout fait :CArrayObj
En d'autres termes, de nombreux éléments de code n'ont pas besoin d'être inventés, ils sont déjà là, il suffit de les prendre et de les utiliser.
Je comprends cela, la question est de changer le style au survol tout en gardant les coordonnées... bien que cela semble être déjà clair
Y a-t-il un bilio standard sur le contrôle ?
La bibliothèque standard des développeurs peut être prise comme base, je n'y vois rien de gênant, leur hiérarchie.
Bien sûr, à partir de là, nous devrions jeter tout ce qui est lié à la construction directe, mais laisser le système de transfert des événements - c'est vraiment universel !
Grâce à cette technologie, quelle que soit la classe à laquelle appartient le contrôle le plus complexe, les événements seront transmis par le système typé de l'objet élémentaire.
Le contrôle de base sera dessiné dans le CControls sous-jacent, après quoi l'événement OnPaint() sera généré. Cela permettra à l'utilisateur de redessiner les contrôles enfants et, de manière générale, de redessiner le contrôle comme il le souhaite.
Allez, ! !!!!
et je pensais faire une interaction simple
où l'on va entrer des positionnements comme à gauche du dernier objet dans le cas d'une ligne ou d'une colonne.
Nous allons donc écrire un contrôleur universelC'est exactement comme cela qu'il faut faire : écrire l'interaction élémentaire.
Un contrôleur de base au tout début n'a pas besoin d'avoir toutes les propriétés nécessaires, un fond est suffisant.
Après tout, pour rendre le contrôle lui-même, il contiendra la fonction correspondante. Ainsi, lorsque nous ajouterons des propriétés, nous devrons modifier une seule fonction.
Selon la hiérarchie des éléments ?
CObject est un type de base
classe CControl : public CObject - le contrôle de base de la bibliothèque elle-même
class CContainerControl : public CControl - le contrôle de groupe. L'un de ses champs sera un tableau de contrôles imbriqués. Vous pouvez voir un exemple dans labibliothèque standard CWndContainer.
Sasha, puisque vous avez déjà commencé à coder, faites un projet open source dans MQL, vous pourrez le développer ensemble et le partager avec les autres. Qui sait, peut-être qu'il y en aura.
Je suis en attente pour le moment... en regardant les bibliothèques standard.... il y a beaucoup de choses inutiles
Je ne sais pas s'il y en a beaucoup, mais il serait préférable d'écrire son propre code... ou hériterCChartObject
- www.mql5.com
Sasha, puisque vous avez déjà commencé à coder, faites un projet open source en MQL. Qui sait, peut-être qu'il y en aura.
Je pense qu'il est un peu tôt pour commencer à zéro, nous devons d'abord construire quelque chose.
Je suis en attente pour le moment... en regardant les bibliothèques standard.... il y a beaucoup de choses inutiles
(bien que pas beaucoup))) mais vous feriez mieux d'écrire votre propre contrôle... ou vous pouvez en hériterCChartObject
Non, non ! !!
Regardez bien !
Ce contrôleur est la voie à suivre pour nulle part ! Nous n'avons pas besoin d'objets graphiques discrets ! Nous devons dessiner sur la toile - c'est la seule façon d'obtenir un développement et des possibilités plus larges.
Et le fait que vous deviez fabriquer votre propre contrôleur principal - ça c'est sûr.
La bibliothèque standard répartit les propriétés et les états entre CWndObject et CWnd, alors que nous devons tout réunir dans un seul contrôle.
Non, non ! !!
Regardez bien !
Ce contrôleur est le chemin vers nulle part ! Nous n'avons pas besoin d'objets graphiques discrets ! Nous devons dessiner sur kanvas - c'est la seule chose qui nous donnera du développement et de larges possibilités.
Et le fait que vous deviez fabriquer votre propre contrôleur principal - ça c'est sûr.
Les propriétés et les états de la bibliothèque standard sont répartis entre CWndObject et CWnd, et nous devons les réunir en un seul contrôle.
J'ai passé un quart d'heure à essayer de créer un projet et il s'est avéré être créé, maintenant je cherche comment le rendre public
Je pense qu'il est un peu tôt pour commencer à faire table rase.
Je suis sûr que ce n'est pas une bonne idée de partir de zéro.
Des personnes très intelligentes ont dépensé beaucoup de temps et de connaissances pour créer la même bibliothèque standard ou la bibliothèque d'Anatoly.
Les gens ont dépensé du temps et des connaissances et il serait stupide de ne pas les utiliser.
Nous devrions simplement prendre le meilleur, de notre point de vue, dans les deux et en construire un nouveau.
Nous devons apprendre des erreurs des autres. Nous ferons le nôtre).
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation