Boutons et champs de texte sur le graphique mt4 possible maintenant - page 2

 
joli
 

Ghost, nous avons la 0.3 qui fonctionne maintenant. Je ne suis pas sûr pour la 0.2 mais la 0.3 supporte certainement le texte et les bgcolors sur les CHECKBOX et les BUTTONS (le reste n'est pas encore implémenté).

Pour obtenir l'état de la case à cocher, nous définirons une nouvelle fonction, mais actuellement tbIsClicked(handle) peut détecter les clics, donc vous pouvez créer une fonction interne pour récupérer l'état puisqu'il peut être 1 ou 0. Mais dans les prochaines versions, une nouvelle fonction viendra gérer l'état de la case à cocher.

Pour obtenir la valeur de la boîte de texte, utilisez

string tbGetText(handle)

Il n'y a pas de fonction prévue pour obtenir la valeur du bouton mais vous pouvez définir le texte du bouton via

tbSetText( obj, text, fontsize, fontname )

cette fonction peut également définir la valeur d'une étiquette, d'un champ de texte etc.....

fx1

 
fx1.net:

Ici, je veux présenter un nouvel addon gratuit pour mt4 en avant-première. Je teste actuellement un produit appelé mt4gui. Ce produit permet de placer des boutons, des champs de texte, des champs de liste directement sur le graphique ; voici une capture d'écran en avant-première qui fonctionne déjà.

http://fx1.net/wiki/uploads/img_7.png

Les boutons réagissent immédiatement après le clic sans attendre le tick du broker. Nous améliorons ce produit avec plus de fonctionnalités dans les semaines à venir. La raison pour laquelle j'ai posté ce message est pour obtenir des idées de la communauté sur ce qui est nécessaire. Bien sûr, tout ne peut pas être réalisé, mais je vais filtrer les idées intéressantes ici.

Voici un exemple de code très basique qui démontre l'utilisation :

Je ne sais pas si je peux ajouter un objet à la librairie ou au diagramme.

être très utile

 

Britanec,

un tel objet est très compliqué à mettre en œuvre à ce stade, car nous voulons publier tous les objets communs jusqu'à la version 1.0, puis nous pourrons passer à des sujets avancés, mais je vous remercie pour vos suggestions, faites-nous part de vos nouvelles idées.


fx1.net

 

Je pense que je n'ai pas été très clair dans mon message précédent. Essayons à nouveau :

1) la façon dont votre fonction place les boutons à l'écran est légèrement différente de ObjectCreate dans mql. Elle n'est pas liée à un coin. Ainsi, pour placer un objet par rapport au coin inférieur, il existe des coordonnées négatives. De plus, le placement s'effectue sur l'ensemble de la fenêtre et non sur une fenêtre graphique. Je n'ai rien contre cela, mais placer du texte à côté d'un bouton avec des coordonnées négatives en utilisant la fonction mql générale est impossible, ou peut-être que je ne pourrais pas le faire. Votre fonction "pxy" est aussi bonne que les autres pour mettre du texte dans une fenêtre graphique, mais elle n'a pas fait le travail puisque les coordonnées sont données différemment.

2) les couleurs ne fonctionnaient pas dans la version 2. Merci beaucoup pour la mise à jour à la version 3. Absolument plus aucun problème avec les couleurs. Excellent.

3) Je voudrais encore une fois vous demander s'il est possible d'utiliser la fonction tbPutObject de votre dll pour placer des objets dans une sous-fenêtre séparée. Votre produit, à mon avis, serait 10 fois plus précieux si cela était fait. Il s'agira d'une sorte de console commerciale, et elle sera très facile à gérer dans une fenêtre. De plus, cela résoudra tous les problèmes de coordonnées soulevés au point 1.

4) J'ai l'échantillon que vous avez posté ici et celui du site fx1. Et bien sûr, je dispose de tbRemove pour chacun des objets dans deinit. C'est juste qu'il ne supprime PAS les objets lorsque l'expert est supprimé. Je ne sais pas pourquoi.

Je tiens à vous remercier une fois de plus pour ce produit. Il est vraiment excellent et c'est exactement ce que je recherchais depuis longtemps.

Il y a cependant un problème que je voulais porter à votre attention. Si le bouton ExpertAdvisor de MT4 est en position OFF et que l'on clique sur l'un de vos boutons, rien ne se passe, ce qui est correct, mais dès que le bouton ExpertAdvisor est réactivé, l'EA exécute toutes les commandes issues des clics. Juste pour un test, j'ai cliqué à la fois sur Acheter et Vendre alors que l'ExpertAdvisor était éteint, dès que je l'ai allumé, il a acheté et vendu. Je pense que c'est quelque chose à corriger.

 

fx1.net : lescontrôles clignotent très souvent sur le graphique, pouvez-vous résoudre ce problème ? Je suppose que la fréquence de clignotement dépend des données tick.

 
Fantôme : voir mes vidéos ; ils ne sont pas flush du tout. C'est une question d'implémentation. Si vous retirez et réappliquez à chaque tick, cela peut arriver, mais dans les autres cas, ils sont plus ou moins statiques. Du moins, de mon côté. Pouvez-vous poster comment vous avez implémenté cela, s'il vous plaît ?
 
pro_:

Je pense que je n'ai pas été très clair dans mon message précédent. Essayons à nouveau :

1) la façon dont votre fonction place les boutons à l'écran est légèrement différente de ObjectCreate dans mql. Elle n'est pas liée à un coin. Ainsi, pour placer un objet par rapport au coin inférieur, il existe des coordonnées négatives. De plus, le placement s'effectue sur l'ensemble de la fenêtre et non sur une fenêtre graphique. Je n'ai rien contre cela, mais placer du texte à côté d'un bouton avec des coordonnées négatives en utilisant la fonction mql générale est impossible, ou peut-être que je ne pourrais pas le faire. Votre fonction "pxy" est aussi bonne que les autres pour mettre du texte dans une fenêtre graphique, mais elle n'a pas fait le travail puisque les coordonnées sont données différemment.


pro_ : oui, MQL le fait en définissant une propriété séparée et en gardant les positions positives. Je pense que vous pouvez faire la même chose avec des coordonnées négatives, c'est pourquoi j'ai implémenté cela de cette façon. A propos de la fonction pxy, elle est capable de comprendre les coordonnées avec une légère modification. Oui, toute la fenêtre, car en tant que .dll, nous ne pouvons pas voir l'axe du graphique, etc. D'autre part, ils ont l'air statiques, vous pouvez simplement mesurer leur largeur et leur hauteur et placer les textes x,y par rapport à cela.

2) les couleurs ne fonctionnaient pas dans la version 2. Merci beaucoup pour la mise à jour à la version 3. Absolument plus aucun problème avec les couleurs. Excellent.

La version 3 supporte encore la couleur dans les boutons, les cases à cocher.


3) Je voudrais encore une fois vous demander s'il est possible d'utiliser la fonction tbPutObject de votre dll pour placer des objets dans une sous-fenêtre séparée. Votre produit, à mon avis, serait 10 fois plus précieux si cela était fait. Il s'agira d'une sorte de console commerciale, et elle sera très facile à gérer dans une fenêtre. De plus, cela résoudra tous les problèmes de coordonnées soulevés au point 1.

Le travail principal était de les placer sur la fenêtre du graphique. Placer une fenêtre séparée serait très facile mais actuellement nous avons choisi une voie. L'implémentation est légèrement différente selon que nous les plaçons sur le graphique ou dans une fenêtre séparée. Dans les versions ultérieures, nous pourrions le faire. J'ai prévu de pouvoir réduire la taille du graphique sans modifier la taille de la fenêtre MDI dans laquelle se trouve le graphique. De cette façon, nous pourrions avoir un espace séparé à droite ou en bas pour placer des boutons supplémentaires. Ils ressembleraient à des boutons à côté du graphique.


4) J'ai l'échantillon que vous avez posté ici et celui du site fx1. Et bien sûr, je dispose de tbRemove pour chacun des objets dans deinit. C'est juste qu'il ne supprime PAS les objets lorsque l'expert est supprimé. Je ne sais pas pourquoi.

Oui, je le confirme, cela fonctionnait auparavant. Je vais vérifier cette question importante

Il y a cependant un problème que je voulais porter à votre attention. Si le bouton ExpertAdvisor de MT4 est en position OFF et que l'on clique sur l'un de vos boutons, rien ne se passe, ce qui est correct, mais dès que le bouton ExpertAdvisor est réactivé, l'EA exécute toutes les commandes issues des clics. Juste pour un test, j'ai cliqué à la fois sur Acheter et Vendre alors que l'ExpertAdvisor était éteint, dès que je l'ai allumé, il a acheté et vendu. Je pense que c'est quelque chose à corriger.

Oui, vous avez raison. Je n'ai pas vérifié ce problème. Je vais également travailler sur ce point.

Merci beaucoup d'avoir testé mt4gui !

 

fx1.net: avant de poster mon code, je vais vérifier votre exemple de code.

Le problème peut-il venir du fait que j'utilise le tbSetText pour mettre à jour le texte des étiquettes à chaque tick?

Prévoyez-vous d'ajouter des radioboutons à l'addon ? Si ce n'est pas le cas, comment pouvons-nous modifier l'état d'une case à cocher ?

 

Le bug de tbRemove et tbRemoveAll a été corrigé sur la v0.4

Le support descheckbox a été étendu :

int tbSetChecked(int,bool) ;

int tbIsChecked(int) ;

Le code de démonstration sur le site a été mis à jour.