Questions des débutants MQL4 MT4 MetaTrader 4 - page 217
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
Mmm, peut-être.
Tu es le premier qui ne l'a pas encore eu))
Mais cela n'a pas d'importance, peut surgir chez n'importe qui - donc vous devez le réparer, malheureusement.
J'en ai beaucoup, cela dépend de la version de MT4 (j'en ai une d'Alpari).
J'en ai beaucoup de versions différentes, je programme pour eux :-) mais le logiciel est toujours le même, ils ne diffèrent que par de petites marques et de petits éléments dans les indicateurs/conseillers.
Les problèmes de couleurs peuvent provenir d'un mauvais réglage DPI du moniteur, de la présence d'utilitaires de correction de la température des couleurs ou d'extensions de jeux de cartes vidéo. Et ainsi de suite.
PPS/au fait, aucun DC n'a surmonté (plus probablement par cupidité, argent) ses propres indicateurs/conseillers/scripts/outils. Tout au plus un tableau de bord aux couleurs de l'entreprise. Ce qui laisse entendre que
Bonjour !
Pouvez-vous me dire pourquoi OBJPROP_XSIZE donne 0 ?
Bonjour !
Pouvez-vous me dire pourquoi OBJPROP_XSIZE donne 0 ?
OBJ_LABEL est un objet très spécifique - après le placement et avant la première mise à jour du graphique, la largeur (X_SIZE) n'est pas définie.
Cela dépend de la police et de la résolution de l'écran. Tant que les fonctions de rendu ne sont pas totalement activées, il n'est pas possible de se prononcer sur la largeur réelle.
OBJ_LABEL est un objet très spécifique - après le placement et avant la première mise à jour du graphique, la largeur (X_SIZE) est indéfinie.
Cela dépend de la police, de la résolution de l'écran en général. Tant que le rendu ne fonctionne pas complètement, nous ne pouvons rien dire sur la largeur réelle.
Essayez de le redessiner et vérifiez ensuite
Essayez de redessiner et vérifiez ensuite
Merci, je vais essayer !
Ça n'a pas marché.OBJ_LABEL est un objet très spécifique - après le placement et avant la première mise à jour du graphique, la largeur (X_SIZE) est indéfinie.
Cela dépend de la police, du dpi de l'écran en général. Tant que les fonctions de rendu ne fonctionnent pas complètement, je ne peux rien dire sur la largeur réelle.
Merci, l'idée est claire, je vais expérimenter quelque chose.
Merci, je comprends l'idée, je vais l'expérimenter.
ChartRedraw ne redessine pas directement, il met juste un tick quelque part dans les profondeurs du terminal "le graphique doit être redessiné dès que possible".
Pour savoir quelle largeur la marque de texte (devrait) avoir, vous pouvez essayer TextSetFont, TextGetSize - une différence significative peut seulement apparaître à HiDPI. Ou peut-être pas :-) Je n'ai pas essayé.
ou obtenir la largeur de l'OBJ_LABEL réel dès le prochain tick/événement graphique, c'est-à-dire exactement après le repeint.
ChartRedraw ne redessine pas directement, il met juste un tick quelque part dans les profondeurs du terminal "le graphique doit être redessiné à la première occasion".
Pour savoir quelle largeur une marque de texte (devrait) avoir, vous pouvez essayer TextSetFont, TextGetSize - une différence significative peut seulement apparaître à HiDPI. Ou peut-être pas :-) Je n'ai pas essayé.
ou obtenir la largeur du OBJ_LABEL réel dès le prochain tick/événement graphique, c'est-à-dire exactement après le rechargement.
Je l'ai déjà fait fonctionner, merci ! Ajouté OnDeinit(), mis un délai à cet endroit, et ensuite OBJPROP_XSIZE.
P.S. Je n'ai rien trouvé de mieux à faire avec le retard du scénario :
for(int i=100000000; i>0; i--) {}
Merci, tout s'est arrangé ! J'ai ajouté OnDeinit(), j'y ai mis un délai, puis OBJPROP_XSIZE.
P.S. Je n'ai rien trouvé de mieux à faire avec le retard du scénario :
// задержка 500 милисекунд, годная для тестера
ulong timestamp=GetTickCount64();
do {
Sleep(500/4); // в тестере не сработает, зато спасёт GetTickCount
} while(GetTickCount64()-timestamp<500);
// задержка 500 милисекунд, годная для тестера
ulong timestamp=GetTickCount64();
do {
Sleep(500/4); // в тестере не сработает, зато спасёт GetTickCount
} while(GetTickCount64()-timestamp<500);
Merci, ça a marché !