Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 366

 
msl271170:

Merci, je crois que j'ai trouvé.

Et comment faire fonctionner le débogueur sur des données historiques ?


Heureux de vous aider.

Le débogage n'est possible que sur l'historique dans MT5.

 
Aleksey Vyazmikin:

Heureux de vous aider.

Le débogage n'est possible que sur l'historique dans MT5.


Je comprends que MT5 a un langage de programmation différent. Mon code ne fonctionnera-t-il pas là-bas ?

 
msl271170:

Je comprends que MT5 a un langage de programmation différent. Mon code ne fonctionnera-t-il pas là-bas ?

Personne n'a vu votre code. C'est pourquoi il est difficile de le dire. Mais les langues sont presque les mêmes.
 

Vous trouverez ci-joint un panneau basé sur l'exemple de SB. J'ai nettoyé le code pour ne laisser que ce qui est pertinent pour la question, le code source est joint.



Pouvez-vous me dire comment colorer l'en-tête et la zone principale, sur laquelle nous accrochons les éléments ?
Il semble que ces objets se trouvent dans la classe mère Dialog,

private:
   //--- dependent controls
   CPanel            m_white_border;        // the "white border" object
   CPanel            m_background;          // the background object
   CEdit             m_caption;             // the window title object
   CBmpButton        m_button_close;        // the "Close" button object
   CWndClient        m_client_area;         // the client area object

Et ils ont des méthodes correspondantes


Mais comment accéder correctement aux champs privés ?

Dossiers :
 
Vasiliy Pushkaryov:

Vous trouverez ci-joint un panneau basé sur l'exemple de SB. J'ai nettoyé le code pour ne laisser que ce qui est pertinent pour la question, le code source est joint.



Pouvez-vous me dire comment colorer l'en-tête et la zone principale, sur laquelle nous accrochons les éléments ?
Il semble que ces objets se trouvent dans la classe mère Dialog,

Et ils ont des méthodes correspondantes


Mais comment accéder correctement aux champs privés ?

Vous disposez d'une liste de méthodes d'accès à ces champs sur l'image. Les méthodes sont-elles publiques ?
 
Artyom Trishkin:
Vous disposez d'une liste de méthodes d'accès à ces champs sur l'image. Les méthodes sont-elles publiques ?

Non. Je l'ai tapé dans CDialog dans le constructeur, je l'ai capturé, puis j'ai tout remis en place.

 
Artyom Trishkin:
Vous disposez d'une liste de méthodes d'accès à ces champs sur le tableau. Les méthodes sont-elles publiques ?

Il existe une méthode publique CDialog::CreateCaption(), CreateClientArea(). Les panneaux y sont créés et leurs couleurs sont définies par CONTROLS_DIALOG_COLOR_BG et CONTROLS_DIALOG_COLOR_CLIENT_BG.

J'ai essayé de remplacer ces variables dans ma classe par undef et de les définir à nouveau. Puis on exécute à nouveau les méthodes Create..., mais comme les objets ont déjà été créés, une erreur 4200 est renvoyée - l'objet existe déjà.

Ajouté :

L'erreur 4200 est celle que j'ai vérifiée dans MT4.

 
Vasiliy Pushkaryov:

Il existe une méthode publique CDialog::CreateCaption(), CreateClientArea(). Les panneaux y sont créés et leurs couleurs sont définies par CONTROLS_DIALOG_COLOR_BG et CONTROLS_DIALOG_COLOR_CLIENT_BG.

J'ai essayé de remplacer ces variables dans ma classe par undef et de les définir à nouveau. Puis on exécute à nouveau les méthodes Create..., mais comme les objets ont déjà été créés, une erreur 4200 est renvoyée - l'objet existe déjà.

Ajouté :

L'erreur 4200 se produit lorsque je vérifie dans MT4.

Honnêtement, je n'ai jamais utilisé ces ressources SB. Mais qu'est-ce qui vous empêche de regarder dans SB où là, par quelles méthodes, les couleurs sont fixées. Ce que vous avez montré dans la liste :

private:
   //--- dependent controls
   CPanel            m_white_border;        // the "white border" object
   CPanel            m_background;          // the background object
   CEdit             m_caption;             // the window title object
   CBmpButton        m_button_close;        // the "Close" button object
   CWndClient        m_client_area;         // the client area object

- sont des noms d'objets - classes CPanel, CEdit, CBmpButton et CWndClient.

Et vous devez trouver les noms des membres de ces classes où les couleurs sont stockées et par quelles méthodes elles peuvent être initialisées ou modifiées.

Et vous devrez probablement les initialiser d'abord, puis construire l'objet lui-même.

 

Bonjour !

Lors de la compilation, il donne"undeclared identifier" (identificateur non déclaré)

J'ai cherché et cherché, mais je n'ai pas compris ce que je devais faire pour corriger l'erreur.

À l'aide, s'il vous plaît !

Dossiers :
Image_2.jpg  524 kb
 
Kedrov: Lors de la compilation, lemessage "undeclared identifier" apparaît.
Cliquez sur le message d'erreur. Le curseur pointe sur le nom de la variable. Elle doit être déclarée