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
Oui, il est important de publier d'abord un programme complet.
Bonjour à tous,
À la lumière des discussions récentes, je voudrais proposer que nous documentions les résultats et les progrès du projet de Peter Konow dans la "Codebase" plutôt que sur le forum. Le forum est excellent pour les discussions et les réactions immédiates, mais il manque de structure et de cohérence pour présenter l'image globale et les politiques cohérentes du projet.
En utilisant la base de code, nous pouvons nous assurer que toutes les informations pertinentes sont organisées, facilement accessibles et qu'elles fournissent une vue d'ensemble claire de l'état d'avancement du projet. Cela permettra non seulement de maintenir la clarté, mais aussi de faciliter la collaboration et la compréhension entre tous les membres de l'équipe et les parties prenantes.
Je vous serais reconnaissant de bien vouloir prendre en considération cette suggestion.
En utilisant un "Codebase", nous pouvons nous assurer que toutes les informations pertinentes sont organisées, facilement accessibles et qu'elles fournissent une image claire de l'état d'avancement du projet. Cela permettra non seulement de maintenir la clarté, mais aussi de promouvoir une meilleure coopération et une meilleure compréhension entre tous les membres de l'équipe et les parties prenantes.
Je vous serais très reconnaissant de bien vouloir examiner cette proposition.
C'est une suggestion très rationnelle, merci. Il ne fait aucun doute que la base de code est pratique pour publier des mises à jour et communiquer avec les utilisateurs. C'est un atout majeur pour le développement du projet. Bien que je n'aie guère utilisé la base de code dans le passé, je vois maintenant l'intérêt pratique d'explorer les termes et conditions et de s'adapter aux exigences. Pour me faire une idée des possibilités et des limites de cette plateforme, je vais me pencher sur les projets de membres bien connus de la communauté. En m'inspirant de leur exemple, je pourrai mener le projet dans la base de code de manière informative et compétente.
J'ai une version prévue pour aujourd'hui.
Cependant, j'ai décidé de suivre le conseil utile d'un membre du forum et de publier la nouvelle version dans la base de code. Pour bien faire, j'aurai besoin de quelques jours pour étudier des exemples de publications similaires, pour faire un plan de fonctionnement parallèle du projet sur le forum et là. Et aussi pour passer par la modération.
Quelques mots sur cette version :
1. Conceptualisation et implémentation d'un système d'interaction programmatique entre un programme utilisateur et son interface graphique.
Plus de détails :
1. Lorsqu'elles sont appelées avec des crochets vides, les fonctions renvoient la valeur du paramètre de l'élément avec l'un des trois types suivants : int, double, string selon le type de l'élément.
2. lorsqu'elles sont appelées avec une valeur entre parenthèses, les fonctions attribuent la valeur passée au paramètre de l'élément, puis le redessinent (la valeur est fixée à int, double ou string, en fonction du type de l'élément).
3. Lorsqu'elles sont appelées avec la valeur par défaut du premier paramètre et un numéro de propriété (parmi les propriétés disponibles), les fonctions renvoient la valeur de cette propriété de l'élément (tous les numéros de propriété sont de type int, transmis dans le paramètre de propriété).
4 . Lorsqu'elles sont appelées avec lavaleur et la valeur dela propriété entre parenthèses, les fonctions fixent les valeurs transmises aux propriétés disponibles de l'élément. Lenuméro de la propriété est transmis dans le paramètre property , la valeur de la propriétéest transmise dans le paramètrevalue .
Structure des noms de fonctions : w6_i_BUTTON_Start() ;
1. w est la lettre initiale de toutes les fonctions enveloppantes. Il s'agit d'une abréviation de " window" (fenêtre).
2. 6 (ou autre nombre) - le numéro de séquence de la fenêtre contenant l'élément.
3. i (soit d ou s) - désigne le type de la valeur renvoyée ou définie du paramètre de l'élément.
4) BOUTON - nom du type d'élément auquel appartient la fonction enveloppante. Il peut s'agir de n'importe quel autre élément.
5. début - nom d'un élément spécifique .
//----------------------------------------------------------------------------------------------------
Application intelligente du système intellisense :
Il a été décidé d'utiliser un système de préfixes spécial qui permet de rechercher et de trouver rapidement les fonctions nécessaires - les wrappers de fenêtres et d'éléments. Voici un exemple :
Toutes les fonctions d'habillage de fenêtres et d'éléments ont la lettre w au début. Toutefois, si vous placez un tiret inférieur après w : _, une fenêtre d'intellisense s'ouvre avec une liste de noms de toutes les fonctions de fenêtre de l'interface utilisateur. Ensuite, vous devez trouver la fenêtre portant le nom que vous recherchez dans la liste, regarder son numéro (il est imprimé dans le nom de la fonction), effacer le tiret et placer ce numéro après w. La liste d'intellisense avec les noms des fonctions des éléments inclus dans la fenêtre apparaîtra immédiatement. Voici comment procéder :
Il s'agit d'un moyen simple de naviguer rapidement dans la liste des fonctions de l'enveloppe de l'élément. Il n'est même pas nécessaire de les imprimer.
//----------------------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------
Des modifications et des ajouts ont également été apportés au fichier API. L'utilisateur dispose désormais de plus d'informations sur l'élément et la fenêtre :
J'espère pouvoir essayer ces fonctionnalités bientôt.
Je présente une version du moteur interagissant de manière programmatique avec l'interface graphique.
J'ai fait beaucoup de choses. Il y a quelque chose à dire et à montrer.
Après les tests publics, je l'ajouterai à la base de code.
Une chose intéressante est apparue...
Plus de détails demain.
Avec un peu d'avance, je peux dire que j'ai trouvé une solution très pratique pour les utilisateurs. Dans leur code, ils peuvent facilement naviguer à travers les fenêtres, les éléments et les propriétés. La solution leur permet de ne pas se souvenir des noms des éléments ou des propriétés, mais de les trouver facilement et de travailler avec eux. En même temps, chaque élément possède une liste de propriétés get/set disponibles uniquement pour lui et les éléments "apparentés". Le préfixe étant intégré dans le nom de la fonction de l'élément, l'utilisateur l'appelle et ne commet jamais l'erreur d'essayer de renvoyer ou de définir une propriété que l'élément ne possède pas.
Les fonctions enveloppantes se sont révélées si polyvalentes et si faciles à utiliser que j'en suis moi-même surpris. Elles renvoient la valeur d'un paramètre lorsque les parenthèses sont vides, la définissent lorsque la valeur est un, renvoient la valeur d'une propriété à partir d'une liste lorsque le premier paramètre est vide et que l'indice de la propriété se trouve dans le second. Ils attribuent une valeur à une propriété lorsque le premier paramètre contient une valeur et que l'index de la propriété se trouve dans le second. Elles renvoient également une notification de résultat sous la forme 1 en cas de succès et -1 en cas d'erreur (valeur ou propriété non valide). Les fonctions redessinent les éléments eux-mêmes. Vous n'avez pas besoin de vous en occuper.
Ce que vous pouvez faire avec les fonctions enveloppantes :
1. Obtenir la valeur du paramètre de l'élément.
2. Définir la valeur d'un paramètre d'élément.
3. Obtenir les valeurs des propriétés de l'élément à partir de la liste individuelle des propriétés appartenant à son type d'éléments (appelées par le préfixe écrit dans le nom de la fonction).
4. Définir les valeurs des propriétés d'un élément à partir de la même liste.
5. Définir l'état de l'élément : neutre, activé, (on/off), bloqué neutre, bloqué activé.
6. Renvoie l'état actuel de l'élément.
Dans le premier cas, la fonction renvoie la valeur du paramètre.
Dans le second cas, elle renvoie le résultat : succès ou erreur. L'erreur est consignée dans le journal.
Dans le troisième cas, la fonction renvoie la valeur de la propriété.
Dans le quatrième cas, elle renvoie le résultat : succès ou erreur de la définition de la propriété.
Dans le cinquième cas, il renvoie 1 ou -1.
Dans le sixième cas, elle renvoie l'indice d'état de l'élément (voir ci-dessous).
Tout est fait par une fonction enveloppante qui est imprimée automatiquement. Pour la trouver, tapez w_, la liste d'intellisense s'ouvrira, elle contient les noms des fenêtres. Dans l'une d'entre elles se trouve l'élément que vous recherchez. Vous devez vous rappeler à peu près dans quelle fenêtre il se trouve. Ensuite, effacez le diable et tapez le numéro de la fenêtre et sélectionnez celle dont vous avez besoin dans la liste des éléments. Pas de mémorisation.
Vous n'avez pas non plus besoin de vous souvenir des propriétés des éléments. Regardez le nom de l'élément, voyez le préfixe pour ouvrir une liste de propriétés individuelles. Tapez-le, ouvrez-le, sélectionnez la propriété. Vous n'avez pas besoin de vous souvenir de quoi que ce soit. Pas de saisie non plus. Intellisense fait tout.
Les Windows ont aussi leurs propres wrappers. Ils peuvent les ouvrir et les fermer. Le reste des fonctionnalités n'a pas encore été implémenté.
J'ai fait une grosse mise à jour du fichier API. Il contient maintenant une ÉNORME quantité d'informations utiles sur l'élément. A savoir : les préfixes, les propriétés individuelles, les prototypes de la fonction wrapper de l'élément et de sa fenêtre, l'emplacement exact de l'élément (tableau, canevas et onglet auquel l'élément appartient, le cas échéant), le type de son paramètre (int, double, string...), les propriétés de son paramètre (min.value, max.value, step, nombre de chiffres après la virgule) sont imprimés. Valeur initiale ou option sélectionnée (selon l'élément). Tout est conçu de manière très lisible et compréhensible.
J'ai partiellement testé la nouvelle fonctionnalité et j'en suis satisfait. Tout fonctionne comme prévu.
Demain, je le montrerai en pratique.