Discussion de l'article "Créez vos propres panneaux graphiques en MQL5" - page 2

 

J'ai voulu tout étudier, pour ainsi dire, par la méthode du poke sur l'exemple de Controls.mq5. J'ai déjà essayé de changer le nom des boutons.

   if(!m_button2.Create(m_chart_id,m_name+"Button2222",m_subwin,x1,y1,x2,y2))
      return(false);
   if(!m_button2.Text("Buy"))
      return(false);

J'ai essayé de changer la sortie dans m_Edit, j'ai changé #define BUTTON_WIDTH . J'ai rechargé le terminal, mis à jour les scripts dans le navigateur.

void CControlsDialog::OnClickButton3(void)
  {
   if(m_button3.Pressed())
      m_edit.Text(__FUNCTION__+"Test");
   else
      m_edit.Text(__FUNCTION__+"I td");

Mais rien n'y fait. Avec les différents changements, la vue de l'EA ne change pas du tout. Merci de me dire quel est le problème

 
suggestion pour l'avenir... créer une classe (objet) "calendrier déroulant"
 
thejobber:
suggestion pour l'avenir... créer une classe (objet) "calendrier déroulant".

Il existe déjà un tel objet - CDatePicker, voir dans la bibliothèque standard

 
Kos:

il y en a déjà un - CDatePicker, voir dans la bibliothèque standard.

Merci, il y en a un ! j'ai suivi l'aide ..... jusqu'à présent, maintenant je vais aussi regarder dans MQL5\Include\Controls, mais je vais devoir apprendre à l'utiliser (sans la description dans l'aide) correctement (( mais j'ai déjà appris quelques classes, j'espère que ce sera plus facile à partir de maintenant...).
 
thejobber:
Merci, oui, c'est vrai ! j'ai utilisé l'aide pour m'orienter..... jusqu'à présent, maintenant je vais aussi regarder dans MQL5/Include/controls, mais je vais devoir apprendre à l'utiliser (sans la description dans l'aide) correctement (( mais j'ai déjà maîtrisé quelques classes, j'espère que ce sera plus facile à partir de maintenant...).
Jetez un coup d'œil à l'exemple d'Expert Advisor : ..\Experts\Examples\Controls\Controls\Controls.mq5
 

#property indicator_separate_window

Existe-t-il un moyen de faire en sorte que le panneau soit mis en évidence non pas à partir du bas, mais à partir de la gauche ou de la droite ou du haut ?

existe-t-il un moyen d'interdire le glissement du panneau ? parce que tout est fait, cela fonctionne exactement comme prévu, mais lorsque je glisse le panneau, les éléments à l'intérieur se déplacent à l'extérieur du panneau, d'une certaine manière il n'y a pas de volonté de traiter ce problème, il est plus facile d'interdire le glissement du panneau ))))

et en général, cette biblioteka (panneaux), est encore brute, parfois tout fonctionne comme il faut, puis sans rien changer, au bout d'un certain temps, commencent d'étranges glitches ... Je comprends que pour résoudre ces problèmes, il faut du concret avec des exemples et du code... Je ne le posterai pas pour l'instant, car j'ai résolu la tâche principale que je m'étais fixée, puis si je pense à le mettre sur le marché, je posterai des spécificités....

 

thejobber:

...MAIS lorsque je fais glisser un panneau, les éléments qu'il contient sortent du panneau, et je ne veux pas m'occuper de ce problème, il est plus facile d'interdire de faire glisser le panneau )).

Comme dans le système soviétique - il est plus facile d' interdire :-))

Vous pouvez regarder ici :

CDialog::Add ()

и

AppDialog:: Run()

 

regardé bien sûr, lu.... J'ai tout fait comme il est dit )

seulement il n'y a pas de paramètre qui contrôle la possibilité de glisser-déposer des panneaux.

 

thejobber:

mais il n'y a pas de paramètre permettant de contrôler la capacité de glisser-déposer des panneaux.

Quel est l'objectif du contrôle par glisser-déposer ?

Comment cela se fait-il qu'il n'y ait pas de paramètre de ce type ? Et les gestionnaires DialogDragStart(), OnDialogDragProcess(), OnDialogDragEnd()?

 
Et comment ajouter à ce panneau (par exemple) la modification de la taille des polices pour les objets du panneau ?