My approach. The core is the engine. - page 41

 

I've had the feeling for the last 2 years that I don't live but I don't know where I am.

I cut my veins (lengthwise, I can send you pictures), now I don't know if I'm alive or not - but Peter's topic says that I'm not. :(

I'm in the matrix :(
 
Vladimir Gribachev:

I've had the feeling for the last 2 years that I don't live but I don't know where I am to be honest.

I cut my veins (lengthwise, I can send you pictures), now I don't know if I'm alive or not - but Peter's topic says that I'm not. :(

It must be bad - I'm in the matrix :(

Vladimir Gribachev:

I don't know how it is.

but I've been dreaming about it - the core engine

Oh, shit!

I have to go back to the nuthouse for a rest.

Comrade, don't joke like that.)

I wouldn`t mind to fluff too, but I`m afraid of righteous anger. I guess you're not. I'm surprised at your self-restraint, with such a ranking and number of products in the market =))
 
Ilya Malev:
I wouldn't mind a bit of banter either, but I'm afraid of the wrath of the righteous. I guess you're not. I am surprised at your restraint, with such a rating and the number of products on the market =))

The anger of the admins - it's justified.

I've seen a lot of bans, but when you read all the crap they write, you realize that, yes, it's not enough to kill.

What did I say? If I'm wrong about something, you're welcome to it.

 
Ilya Malev:

Comrade, don't joke like that.

Thank you for keeping history alive. happiness, health, love, prosperity, lots of money, two red porsches and a house in poland.

 
Vladimir Gribachev:

thank you for preserving history. happiness, health, love, prosperity, lots of money, two red porsches and a house in poland.

Sorry, professional habit.

P.S. And thank you for deleting posts that I responded to without quoting them

 

As promised, here is the second demo of the engine. This engine connects to a test Expert Advisor (file attached below) and passes user actions to it.

  1. The engine window has two tabs. On the tab "Group folders", there is an item to minimize group "G_FOLDER". Clicking on it, the table will appear/disappear.
  2. In the tab "Appearance controller", there are two buttons. Each one controls the appearance of a different text. By clicking on them, one text will appear and the other will disappear.
Installation:
  1. Attached are two connection files (External Connection and Connection properties). They need to be installed in the folder inlud. (instead of the former ones, if they are there).
  2. Install the engine in the indicators folder (instead of the old one, if it is there), and put it on the chart.
  3. Install the test Expert Advisor on the chart. (The file is attached below, if it is not there. Install it in the Experts folder, open, save, compile and put it on the chart).

After these procedures, you can test the connection of the test EA.

When you click on table elements, enter text or select an option, the test Expert Advisor will display an Alert message with comments on the event.

You can examine the structure of the Externals Connection file. It is very simple.

The connection properties file should NOT be opened or changed.



SZY. There is also a window code file at the bottom, for those who are interested to learn it.

 
Dmitry Fedoseev:

Try to make one set of controls appear when you click on one button, and another set of controls appear when you click on another button. At the same time, the window can be minimized and maximized. It's also assumed that there could be a lot of variants.

It would be interesting to ask Peter, how he would be able to solve this task.

Here, Dimitri, in the above example three principles of element phenomenon control work at once:

  1. Switching tabs.
  2. Showing/hiding groups of elements with a G_FOLDER element.
  3. Showing/hiding groups or individual elements using a phenomenon control.

Standard library (as far as I understand) doesn't have such features.

Tabs, buttons, radio buttons, items and other elements can be switched using SWITCH.

SWITCH, "Элемент 1","Элемент 2","Элемент 3","Элемент 4",..., END,

Locking of groups of elements or individual elements is done with BLOCKS.

"Элемент 1",BLOCKS,"Элемент 2","Элемент 3","Элемент 4",..., END,

The group phenomenon is controlled by element G_FOLDER.

//Объявляем элемент G_FOLDER:
//----------------------------------------------------------------------------------
GROUP,A,

__,  G_FOLDER, "Group opener 1",  

END_GROUP,
//--------------------------------------------
i,IN,"V1",                       <------------- Устанавливаем канвас на котором рисуем группу элементов.
i, AT, LEFT_TOP, 1,20,           <------------- Устанавливаем позицию группы элементов.

//Устанавливаем свойства элементов типа G_FOLDERS внутри группы:
i,G_FOLDERS, N_COLOR, (int)C'245,245,245',   N_COLOR, (int)C'245,245,245',  AH_COLOR, (int)C'245,245,245',  NH_COLOR, (int)C'245,245,245', END,
//----------------------------------------------------------------------------------
//Делаем таблицу:
//----------------------------------------------------------------------------------
GROUP,A, IS_TABLE,  ROOT,"Group opener 1", <------------------- Устанавливаем привязку явления группы к элементу "Group opener 1", (который является G_FOLDER)


__,     T_HEADER, "The name of the table", H,30,   C_HEADER, "Text cells", C_HEADER, "Checkbox cells",  C_HEADER, "R button cells", C_HEADER, "C list cells",      C_HEADER, "Edit cells", 
__,     R_HEADER, "Row header 1",    T_CELL, "text 1", CHECKBOX, "Checkbox cell 1",    R_BUTTON, "R button cell 1", C_LIST, "C list cell 1",    EDIT, "Edit cell 1",     
__,     R_HEADER, "Row header 2",    T_CELL, "text 2", CHECKBOX, "Checkbox cell 2",    R_BUTTON, "R button cell 2", C_LIST, "C list cell 2",    EDIT, "Edit cell 2",  
__,     R_HEADER, "Row header 3",    T_CELL, "text 3", CHECKBOX, "Checkbox cell 3",    R_BUTTON, "R button cell 3", C_LIST, "C list cell 3",    EDIT, "Edit cell 3",       
__,     R_HEADER, "Row header 4",    T_CELL, "text 4", CHECKBOX, "Checkbox cell 4",    R_BUTTON, "R button cell 4", C_LIST, "C list cell 4",    EDIT, "Edit cell 4", 

END_GROUP,
//----------------------------------
i,  IN, "V1",
i, Y_GAP,-1,
i, X_GAP,-1,

//Устанавливаем свойства элементов типа CHECKBOXES, R_BUTTONS, EDITS внутри группы:
//---------------------------------------------------------------------------------
i, CHECKBOXES, POINTED,0, END, 
i, R_BUTTONS,  POINTED,0, END, 
i, EDITS, POINTED,0, END, 

//Устанавливаем переключение радио-кнопок внутри таблицы:
//---------------------------------------------------------------------------------
"Radio buttons option",SWITCH, "R button cell 1", "R button cell 2","R button cell 3","R button cell 4",  END,

i,IS_ZEBRA_STYLE, <-----------------------------------Устанавливаем стиль Зебра.
i, AT, _X2X, "V1", 4, _Y2H,"Group opener 1", 5,<-----------------------------------Устанавливаем позицию группы относительно сворачивателя.
//----------------------------------------------------------------------------------

Well, how much code would you have to write to make such a thing with the help of the standard library?

This is what distinguishes a marking language from a library. Lightness and speed.

 
Реter Konow:

Here, Dimitri, in the above example, three principles of element phenomenon control work at once:

  1. Switching tabs.
  2. Showing/hiding groups of elements using the G_FOLDER element.
  3. Showing/hiding groups or individual elements using a phenomenon control.

Standard library (as far as I understand) doesn't have such features.

Tabs, buttons, radio buttons, items and other elements can be switched using SWITCH.

Locking of groups of elements or individual elements is done with BLOCKS.

The group phenomenon is controlled by element G_FOLDER.

Well, how much code would you have to write to make such a thing with the help of the standard library?

This is what distinguishes a marking language from a library. Lightness and speed.

Tabs are not an interesting control at all - you can live without them just fine. The number of tabs is too limited.

And 2 and 3 - the farther into the woods the more firewood. I don't have the slightest idea what it is and why it's needed, and I'm not going to find out. Because a set of really necessary and essential controls is defined long ago and it's more than enough for any gui creation task. But this looks like a cult - inventing your own names, methodologies, definitions... etc.

I want to remind you once again that such a separate implementation of the gui in an indicator for controlling an EA doesn't require connection of anything to the EA... even if arrays are used instead of OOP. So, the approach is crooked. It is crooked where it should be the most perfectly thought out, because this is, you may say, the "face of the product".

 
Dmitry Fedoseev:

Tabs are not an interesting control at all; you can live just fine without them. The number of tabs is too limited.

And 2 and 3 are the further into the woods the bigger the firewood. I have no idea what it is and why it's needed, and I'm not going to find out. Because a set of really necessary and essential controls is defined long ago and it's more than enough for any gui creation task. But this looks like a cult - inventing your own names, methodologies, definitions... etc.

I want to remind you once again that such a separate implementation of the gui in an indicator for controlling an EA doesn't require connection of anything to the EA... even if arrays are used instead of OOP. So, the approach is crooked. It's crooked where it should be the most perfectly thought out, because it's, you could say, the "face of the product".

Tabs switch canvases entirely. And the second and third are designed to manage the element phenomenon without switching the kanvases. So, the same kanvas is redrawn and each time with a different set of elements.

About the connection, I don't understand your idea. Why should it not be connected to the EA? How can you synchronize parameters?

The GUI is either completely in the Expert Advisor or it is connected from outside. In the case of connecting externally, you need to set the connection properties and synchronize the values of the parameters on both sides.

 

The GUI taken out from an Expert Advisor to an indicator is a questionable thing (just because of the MT architecture - indicators work in the interface thread and can slow down EVERYTHING. For indicators not to slow down, even part of their functions is forbidden in MT)

not about that.

If a miserable user took a couple of (third-party) indicators and an EA and they are all GUI with the kernel-engine out of the way. What will happen?

PS/ Peter, you have already got at least free hosting and put there your product. If code-base is not good. Publication of alpha/beta/preview versions is a couple of hours. Can't you find the time?