Erreurs, bugs, questions - page 2395

 
Ilyas:

Vous avez raison.

J'ai étudié le code soumis et j'ai changé ma réponse.

Le problème est que dans une application MDI, une seule fenêtre active est maximisée, tandis que les autres sont en quelque sorte à l'extérieur de la fenêtre maximisée et ont une taille "normale".

Lors du changement d'onglet, la nouvelle fenêtre active est étendue et la fenêtre précédemment active est réduite à sa taille normale.

L'EA capte le changement de taille du graphique, détecte que la barre ne tient pas et réduit la fenêtre.

Nous allons examiner et éventuellement modifier ce comportement dans SB.

J'ai reproduit mon code sans tous les trucs supplémentaires, mais malheureusement je n'ai que du code pour MT4 - j'ai l'habitude d'écrire pour MT4, mais je n'écris pas beaucoup pour MT5, mais je pense que vous avez les mêmes bibliothèques

Dossiers :
tstpanel.mq4  12 kb
 
Ilyas:

J'ai supprimé ma réponse précédente

La fenêtre s'effondre parce qu'elle ne tient pas sur le graphique.
Sortez du mode "chart to whole terminal window", vous verrez la taille réelle des graphiques.

Afin d'éviter l'effondrement du panneau sur le graphique, vous devez augmenter la taille des graphiques.
Après cela, vous pouvez étendre le graphique à l'ensemble du terminal et essayer de passer de l'un à l'autre.

j'ai déjà essayé au début, lorsque les nouveaux panneaux sont apparus. j'ai gagné de la place. le panneau est en fait trois fois plus petit que la fenêtre graphique maximisée.
Mais merci pour la réponse, j'avais oublié cette option possible.

Et pourquoi le panneau n'est-il pas réduit lorsqu'on le place dans la deuxième fenêtre et qu'on y passe depuis la première fenêtre tout en travaillant avec des graphiques développés ?

 
Igor Makanu:

Voici un exemple d'utilisation de la classe CAppDialog de la bibliothèque standard.

Si vous utilisez cette classe, la méthode Minimize() est toujours appelée lors du changement de graphique.

Je n'ai pas voulu le comprendre, j'ai juste écrit mon propre OnClickButtonMinMax(), c'était plutôt désordonné, mais ça a fonctionné sans problème.

il y a un autre bug dans la classe CAppDialog, après Minimize() et Maximize() la propriété OBJPROP_BACK de la classe CCheckBox est modifiée, et les cases à cocher deviennent avec une bordure "carrée", j'ai fixé ObjectSet(TS1.Name()+"Label",OBJPROP_BACK,true) dans ce code aussi, ...

J'ai modifié la bibliothèque en tenant compte de votre option de limitation de la taille du panneau, pour éviter de le minimiser lors du passage d'une autre fenêtre, tout a fonctionné.

 
Vjacheslav Lapaev:

J'ai modifié la bibliothèque pour prendre en compte votre option de limiter la taille du panneau, pour éviter qu'il ne s'effondre lorsqu'on passe d'une autre fenêtre, et cela a fonctionné. merci.

Tout reviendra à la normale après la prochaine mise à jour. Vous feriez mieux de ne pas modifier le SB, mais d'hériter de la classe que vous avez modifiée.

 
Artyom Trishkin:

Après la prochaine mise à jour, tout reviendra à la "normale". Vous feriez mieux de ne pas modifier le SB, mais d'hériter de la classe que vous avez modifiée.

Oui, je vois, merci.

 
C'est un robot ?
 
fxsaber:
C'est un robot ?
Pourquoi une telle question ?
 

Si la fenêtre du testeur couvre un indicateur, les indices de cet indicateur apparaîtront à travers elle :

Et voilà.

 
Alexey Kozitsyn:

Si la fenêtre du testeur couvre un indicateur, l'info-bulle de cet indicateur apparaîtra à travers elle :

Ah, non, le bug est légèrement différent. La fenêtre du testeur brille à travers l'info-bulle qui a été activée en dernier. Si l'info-bulle "Échelle horizontale" a été affichée en dernier, alors elle sera toujours affichée, si l'info-bulle "Échelle verticale" a été affichée en dernier, alors elle sera affichée en dernier lors du survol de la valeur de l'indicateur caché sous la fenêtre du testeur. En général, je ne veux pas voir d'infobulles pour gauchers.

 
fxsaber:
C'est un robot ?

Non, un utilisateur régulier qui est sur le point de lancer un signal ou d'exposer un produit.