WinProject: Merci !) De votre réponse, je conclus que pour chaque type d'objet, je dois créer une fonction distincte. J'ai pensé que d'une manière ou d'une autre il serait possible de faire un début séparé de fonctions pour construire des objets, attaché à la boucle alors que la fonction principale pour lire le fichier. Et pourquoi pas Switch ?
Je n'ai probablement pas assez approfondi le sujet.
La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.
Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.
Il sera donc nécessaire de lire le fichier une seule fois au démarrage.
Je n'ai probablement pas assez approfondi le sujet.
La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.
Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.
Ainsi, il ne sera nécessaire de lire le fichier qu'une seule fois au démarrage.
Merci beaucoup pour la réponse, je vais essayer de faire les deux variantes, à travers les drapeaux comme suggéré par STARIJ et votre variante est aussi intéressante à essayer. Je vais essayer de poser moins de questions, c'est heureux qu'on y réponde).
Les drapeaux sont des variables. Ou bool : false=empty, true=raised ou int - alors il y a plusieurs drapeaux dans un numéro à la fois : 0 - tout omis, 1=perte de la première, 2=perte de la deuxième, 3=perte de la première et de la deuxième, 4=perte de la troisième, 5=perte de la troisième et de la première, 6=perte de la troisième et de la deuxième, 7=perte de la première, de la deuxième et de la troisième, 8=perte de la quatrième.... C'est en code binaire. Comment le savoir ?
Merci, j'ai trouvé une bonne explication sur le net, je vais l'essayer. La chose étrange est que sur ce site, ni dans la documentation, ni dans le tutoriel, probablement supposé que tous ceux qui sont venus ici ont déjà des compétences en programmation.
WinProject: Merci beaucoup pour la réponse, je vais essayer de faire les deux variantes, par les drapeaux comme suggéré par STARIJ et votre variante est aussi intéressante à essayer. Je vais essayer de poser moins de questions, c'est bien d'avoir des réponses).
Les drapeaux ne sont peut-être pas mauvais, mais ils ne servent pas à grand-chose.
Bonsoir, une fois de plus, je cherche de l'aide. Mon EA a une fonction principale dans OnInit, qui lit un fichier, et construit immédiatement différents objets graphiques en fonction de différentes conditions. Le graphique comporte également un bouton qui, lorsqu'il est cliqué, active la fonction permettant de supprimer ces objets, tels que les étiquettes de texte. Comment faire pour qu'après avoir appuyé sur le bouton, les étiquettes de texte soient supprimées, et qu'en relâchant le bouton, il soit possible de ne pas lancer entièrement la fonction, qui construira complètement tous les objets, mais de ne construire que les étiquettes de texte. La seule chose qui me vient à l'esprit est de créer séparément pour chaque type d'objet un analogue de la fonction principale avec toutes les actions liées à l'ouverture et à la lecture du fichier, mais je veux utiliser une solution intelligente, mais je ne sais pas laquelle et comment, dans la fonction principale ou dans les fonctions des boutons ?
Dans ce cas, il est plus facile d'implémenter la lecture du fichier dans une fonction distincte définie par l'utilisateur et de l'appeler plusieurs fois, afin de ne pas multiplier la création d'un seul et même code plusieurs fois. Mais quels que soient les efforts déployés, la lecture des fichiers demeure lorsque des drapeaux sont utilisés. Et cela ne change rien à ce qu'il faut vérifier lors de la création d'objets supprimés - leur absence ou l'état du drapeau par type d'objet. Après tout, le type d'objet est déterminé par le bouton lié à un type particulier, c'est le drapeau.
Avant-dernier exemple, lacouleur en représentation RVB comme chaîne de caractères."Convertir deux structures en copiant leur contenu" ne fonctionne pas.
#property script_show_inputsinputcolor testColor=clrBlue;// задайте цвет для тестирования//--- структура для представления цвета в RGBstruct RGB
{
uchar blue; // синяя составляющая цветаuchar green; // зеленая составляющая цветаuchar red; // красная составляющая цветаuchar empty; // этот байт не используетсяstring toString(); // функция для получения в виде строки
};
//--- функция для вывода цвета в виде строкиstring RGB::toString(void)
{
string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
return out;
}
//--- структура для хранения встроенного типа color struct builtColor
{
color c;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- переменная для хранения в RGB
RGB colorRGB;
//--- переменная для хранения типа color
builtColor test;
test.c=testColor;
//--- приведение двух структур путем копирования содержимого
colorRGB=test;
Print("color ",test.c," = ",colorRGB.toString());
//---
}
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Merci !) De votre réponse, je conclus que pour chaque type d'objet, je dois créer une fonction distincte. J'ai pensé que d'une manière ou d'une autre il serait possible de faire un début séparé de fonctions pour construire des objets, attaché à la boucle alors que la fonction principale pour lire le fichier. Et pourquoi pas Switch ?
Je n'ai probablement pas assez approfondi le sujet.
La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.
Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.
Il sera donc nécessaire de lire le fichier une seule fois au démarrage.
Je n'ai probablement pas assez approfondi le sujet.
La première, la construction de tous les objets graphiques, ne pose aucun problème ni aucune question. Mais j'ai dû mal comprendre la seconde. Apparemment, la question n'était pas de savoir comment organiser le travail avec un bouton pour plusieurs types d'objets, mais un bouton pour un seul type d'objets. Dans ce cas, je ferais une structure avec des paramètres d'objet et plusieurs tableaux de structures, un tableau pour chaque type d'objet. Ainsi, je lierais ces tableaux de structures aux boutons des types correspondants.
Ensuite, lorsque vous appuyez sur le bouton, le type d'objet correspondant sera supprimé. Et lorsque le bouton est relâché, les objets seront restaurés par les paramètres qui se trouvent dans le tableau de la structure.
Ainsi, il ne sera nécessaire de lire le fichier qu'une seule fois au démarrage.
Les drapeaux sont des variables. Ou bool : false=empty, true=raised ou int - alors il y a plusieurs drapeaux dans un numéro à la fois : 0 - tout omis, 1=perte de la première, 2=perte de la deuxième, 3=perte de la première et de la deuxième, 4=perte de la troisième, 5=perte de la troisième et de la première, 6=perte de la troisième et de la deuxième, 7=perte de la première, de la deuxième et de la troisième, 8=perte de la quatrième.... C'est en code binaire. Comment le savoir ?
Merci beaucoup pour la réponse, je vais essayer de faire les deux variantes, par les drapeaux comme suggéré par STARIJ et votre variante est aussi intéressante à essayer. Je vais essayer de poser moins de questions, c'est bien d'avoir des réponses).
Les drapeaux ne sont peut-être pas mauvais, mais ils ne servent pas à grand-chose.
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
Toutes les questions des débutants sur MQL4, aide et discussion sur les algorithmes et les codes
WinProject, 2018.01.26 18:17
Bonsoir, une fois de plus, je cherche de l'aide. Mon EA a une fonction principale dans OnInit, qui lit un fichier, et construit immédiatement différents objets graphiques en fonction de différentes conditions. Le graphique comporte également un bouton qui, lorsqu'il est cliqué, active la fonction permettant de supprimer ces objets, tels que les étiquettes de texte. Comment faire pour qu'après avoir appuyé sur le bouton, les étiquettes de texte soient supprimées, et qu'en relâchant le bouton, il soit possible de ne pas lancer entièrement la fonction, qui construira complètement tous les objets, mais de ne construire que les étiquettes de texte. La seule chose qui me vient à l'esprit est de créer séparément pour chaque type d'objet un analogue de la fonction principale avec toutes les actions liées à l'ouverture et à la lecture du fichier, mais je veux utiliser une solution intelligente, mais je ne sais pas laquelle et comment, dans la fonction principale ou dans les fonctions des boutons ?
Pouvez-vous me dire comment obtenir la valeur de l'heure courante en MQL5 ?
J'ai créé un objet de la structure MqlDateTime, cela ne donne rien
Pouvez-vous me dire comment obtenir la valeur de l'heure courante en MQL5 ?
J'ai créé un objet de la structure MqlDateTime, cela ne donne rien
La structure doit être remplie avec la date et l'heure.
Utiliser TimeCurrent()? Je ne comprends pas comment.
utiliser TimeCurrent()? Je ne comprends pas comment le faire.
TimeToStruct()
Ah, je l'ai, ça marche, merci !
https://docs.mql4.com/ru/basis/types/casting
Avant-dernier exemple, lacouleur en représentation RVB comme chaîne de caractères."Convertir deux structures en copiant leur contenu" ne fonctionne pas.
Le compilateur génère l'erreur suivante... ('=' - opération illégale utiliser test.mq4 34 12 )
Ai-je mal copié quelque chose ou y a-t-il une erreur dans l'échantillon ? S'il vous plaît, conseillez-moi.