Erreurs, bugs, questions - page 2040

 
Yury Kulikov:

Les paramètres MouseMove(x, y, key) sont utilisés. La position du curseur et le clic de la souris sont déterminés, la ligne principale est déplacée par mql, et non par les capacités de l'interface du terminal, c'est-à-dire que le programme surveille la position du curseur par rapport à la ligne, et non le mouvement de la ligne. Le mouvement simultané des lignes est assuré par le changement synchrone des coordonnées de la ligne principale et de la ligne dépendante.

Bizarrement, je n'utilise pas du tout les coordonnées de la souris, je réponds simplement à id == CHARTEVENT_MOUSE_MOVE. Et tout fonctionne bien, ce qui est en fait logique.

Vous n'avez pas besoin de DND personnalisé pour la fluidité. Si vous créez un DND personnalisé, vous devez également créer des objets personnalisés via kanvas. Il ne peut certainement pas y avoir de décalage, car l'objet est toujours le même.

 
Vitaly Muzichenko:

Cela ne fonctionne pas dans la sous-fenêtre des indicateurs, qu'est-ce que je fais mal ?

ce qui était attendu et ce qui ne fonctionne pas exactement ?
 
Kirill Belousov:
mais ce qui était attendu et ce qui ne fonctionne pas exactement ?

Prévu pour convertir les coordonnées dans une sous-fenêtre, et obtenir un prix.

Fonctionne dans la fenêtre principale, il ne fonctionne pas dans les sous-fenêtres, comme vous pouvez le voir sur les impressions.

De plus, la fonction remplace le numéro de la sous-fenêtre par "0", c'est-à-dire par la fenêtre principale :

Преобразует координаты  X и Y графика в значения время и цена.
bool  ChartXYToTimePrice(
   long           chart_id,     // идентификатор графика
   int            x,            // координата X на графике
   int            y,            // координата Y на графике
   int&           sub_window,   // номер подокна
   datetime&      time,         // время на графике
   double&        price         // цена на графике
   );
 

Erreur de compilation

int f() { return 1; }
void OnStart() export
{
        for   ( int i = f();           ;) {} //(1) нормально
        for   (            ;int i = f();) {} //(2) 'i' - unexpected token
        while (             int i = f() ) {} //(3) 'i' - unexpected token
}
 
Vitaly Muzichenko:

Prévu pour convertir les coordonnées dans une sous-fenêtre, et obtenir un prix.

Fonctionne dans la fenêtre principale, il ne fonctionne pas dans les sous-fenêtres, comme vous pouvez le voir sur les impressions.

En outre, la fonction remplace le numéro de la sous-fenêtre par "0", c'est-à-dire par la fenêtre principale :

Depuis l'aide de la fonction : les coordonnées X et Y sont comptées depuis le coin supérieur gauche de la fenêtre principale du graphique.

x=5, y=34 fait également référence à la fenêtre principale, donc fenêtre de sortie=0.

Essayez d'augmenter Y de la hauteur de la fenêtre principale pour "atterrir" dans une autre fenêtre.

 
A100:

Erreur de compilation

Est-il acceptable de déclarer et d'assigner à l'intérieur de while(...) au lieu de vérifier une condition ?
 
Kirill Belousov:

Extrait de l'aide de la fonction : X et Y sont des coordonnées référencées depuis le coin supérieur gauche de la fenêtre principale du graphique.

x=5, y=34 fait également référence à la fenêtre principale, la sortie est donc window=0.

Essayez d'augmenter Y de la hauteur de la fenêtre principale pour "atterrir" dans une autre fenêtre.

Ce n'est pas du tout la réponse, ni le résultat.

Nous spécifions le numéro de la sous-fenêtre, et il pourrait être 3 ou 4, alors comment spécifier les coordonnées ?

Il y a une erreur manifeste dans la fonction.

 
Vitaly Muzichenko:

Ce n'est pas du tout la réponse, ni la solution.

Nous spécifions le numéro de la sous-fenêtre, et il pourrait être 3 ou 4, alors comment spécifier les coordonnées ?

Il y a une erreur manifeste dans la fonction.

Nous ne spécifions pas le numéro de la sous-fenêtre, mais la fonction nous indique (il s'agit d'un paramètre de sortie, pas d'un paramètre d'entrée) - dans quelle sous-fenêtre du graphique avec l'ID spécifié se trouve le graphique des prix et nous dit quel prix et quelle heure correspondent aux coordonnées X,Y spécifiées sur ce graphique.
 
Kirill Belousov:
Est-il acceptable de déclarer et d'assigner à l'intérieur de while(...) au lieu de vérifier la condition ?

Laissez les développeurs vérifier. C++ compile, bien que la ligne (2) [mais pas (3)] puisse provoquer une erreur dans les compilateurs obsolètes.

 
Kirill Belousov:
Nous ne spécifions pas le numéro de la sous-fenêtre, mais la fonction nous indique (il s'agit d'un paramètre de sortie, pas d'un paramètre d'entrée) - dans quelle sous-fenêtre du graphique avec l'ID spécifié se trouve un graphique de prix et elle nous dit quel prix et quelle heure correspondent aux coordonnées X,Y que nous avons spécifiées dans ce graphique.

Cela est compréhensible, en passant le paramètre par référence. Mais la question reste ouverte : pourquoi la fonction ne voit-elle pas dans quel numéro de sous-fenêtre l'indicateur est installé et ne prend-elle pas de données de celui-ci ?