Classes for creating panels and dialogues

 

These are the classes. There are, of course, a lot of questions, even too many. But one is the main one at the moment.

There is no way to create a panel on the price chart from the indicator in the sub-window?

 
Dmitry Fedoseev:

These are the classes. There are, of course, a lot of questions, even too many. But one is the main one at the moment.

There is no way to create a panel on a price chart out of an indicator in a subwindow?

Isn't it (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5)?

EURUSDM1

 
Vladimir Karputov:

Is this (\MQL5\Indicators\Examples\Panels\SimplePanel\SimplePanel.mq5) not it?

It is not. The indicator itself is drawn in the sub-window, while the panel needs to be created on the price chart. There is no reaction to the subwin parameter. Judging by the code in Dialog.mqh, it should not:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

I have already found a way out of this situation, very tricky (and very unusual, will be in the article). But still the way of thinking of the creator of these classes is very interesting.

 
Dmitry Fedoseev:

Wrong. The indicator itself draws in the sub-window, but the panel needs to be created on the price chart. There is no reaction to subwin parameter. Judging by the code in Dialog.mqh it should not:

bool CAppDialog::CreateIndicator(const int x1,const int y1,const int x2,const int y2)
  {
   int width=m_chart.WidthInPixels();
//--- geometry for the minimized state
   m_min_rect.LeftTop(0,0);
   m_min_rect.Width(width);
   m_min_rect.Height(CONTROLS_DIALOG_MINIMIZE_HEIGHT-2*CONTROLS_BORDER_WIDTH);
//--- determine subwindow
   m_subwin=ChartWindowFind();

I have already found a way out of this situation, very tricky (and very unusual, will be in the article). But still the way of thinking of the creator of these classes is very interesting.

I haven't done it - if the indicator creates a panel based on classes for creating dialogs and panels, it does it in its own window. Probably there is also a link to receiving events.
 

Another glitch has been discovered. I create a panel from the indicator on the price chart, and if there is an indicator in the sub-window on the chart, the panel glitches.

A gift from hell, not classes for creating panels and dialogs.

 

What should the GUI be like ? What controls are you planning to use? I can help to make a GUI for all articles where you need one, using my version.

Here is the latest version (build 4) of the library:Graphic Interfaces X: Standard Graphics Element (build 4)

If interested, we'll continue in private.

 
Anatoli Kazharski:

What should the GUI be like ? What controls are you planning to use? I can help to make a GUI for all articles where you need one, using my version.

Here is the latest version (build 4) of the library:Graphic Interfaces X: Standard Graphics Element (build 4)

If interested, we'll continue in private.

I don't know what it should be. Just looking here at the number of topics with GUI, I thought maybe Roche decided to popularize the standard classes for creating panels and dialogs. They should not be popularized, they should be forgotten about forever.

If there are no special requirements for articles on GUI creation (I hope Roche will answer them at some point), I can create something myself. I can read your articles myself too. But I'm just not used to blame my problems on someone else.

 
Dmitry Fedoseev:

...

I can read your articles myself. It's just that I'm not in the habit of blaming my problems on someone else.

It's not complicated. I mean, it wouldn't take much of my time. Besides, it's interesting to me.

Just a minute and the template of indicator on the issue in this thread is ready:

//---

The archive with the files is in the trailer.

Files:
Test.zip  3 kb
 
Anatoli Kazharski:

It's not difficult there. I mean, it wouldn't take much time.

Literally a minute and the indicator template for the question in this thread is ready:

//---

An archive with files in the trailer.

Anatoly, haven't you and MQ discussed adding your classes to the standard library? You've done such a great job + articles, everything is beautiful, while the standard library doesn't shine with it.

Or would you do it as an alternative...

 
Alexey Kozitsyn:

Anatoly, have you and MQ still not talked about adding your classes to the standard library? You've done so much work + articles - everything is beautiful, and the standard library doesn't shine with it.

Or would you do it as an alternative...

You already have one as an alternative. But to include it in the standard library has a lot to do. I wouldn't want to put out a half-baked product. At the current stage of implementation I don't agree, even if everyone says yes.
 
Anatoli Kazharski:

It's not difficult there. I mean, it wouldn't take up much of my time. Besides, it's interesting to me.

Literally a minute and the indicator template for the question in this thread is ready:

//---

The archive with the files is in the trailer.

OK fine, I'll ask around. But in a couple of days. Need to rest for a while, overheated. Yes, and I'd like to get an answer from Roche on the GUI requirements.

Although, if you don't mind, show me a template with a window, like on the picture above, with two input fields with spins, two dropdown lists and a button. Naturally, the events should be handled, and a code example on how to resize the window would also be nice.

The main point of my task is that I need to change a set of controls on the form on the fly.
Reason: