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

 
Vasiliy Sokolov:

...

3) Yes, addressing by name, you have to specify all parameters. But, most importantly, there is no single monolithic event model. If you want your own model, you're welcome. It is elementary to make it. But you can't do without timer.

The event queue is a generalized algorithm for reliable handling of events. The user does not compose anything; events generated by him get to the queue by themselves. The queue itself consists of only one event 99.9% of the time.

Well, the implementation is similar to mine, but mine is much simpler for the user.


  • E_Window_Element(value); Passing value to element:
  • E_Window_Element(); Get the value of the element:

  • E_Window_Element(M_COLOR, value); Set base colour.
  • E_Window_Element(T_COLOR, value); Set colour of text.
  • E_Window_Element(F_COLOR, value); Set frame colour.


  • E_Window_Element(STATE, ON); Set clicked state.
  • E_Window_Element(STATE, OFF); Set Released state.
  • E_Window_Element(STATE, LOCKED_ON); Set locked state.
  • E_Window_Element(STATE, LOCKED_OFF); Set pushed state.
  • E_Window_Element(STATE, ON_H); Set state when clicked in focus.
  • E_Window_Element(STATE, OFF_H); Set state pushed to focus.


  • W_Window_name() Open window.
  • W_Window_name(close) Close window.


The names of the form element wrappers are printed automatically in the connection file, and immediately get into the intellisense.

Vasily, can you use intellisense names of elements and windows in your MQL program?


ZS Vasily, notice how many actions one wrapper does per element. And it takes at most only TWO parameters. Or none.

 
Igor Makanu:

... I've had a total fiasco with dataGridView - I can't write into it more than 3-5 seconds) 10x11 table is already critical, although the form with the table is running in a separate thread

ZS: I attached a StringGrid to MT4 5 years ago in Delphi. I had no problems with it but it all went well. However I have problems with dataGridView from Microsoft, today I will try to experiment with SourceGrid, according to feedbacks it is faster than dataGridView

Tryinfragistics ultragrid as well. It's the coolest thing. If there's a gui that can improve your trading performance, it's this table.

 
Dmitry Fedoseev:

...

Dmitry, there is an architectural model called MVC. The approach I proposed is exactly about it. So when you criticize it, you criticize MVC in the first place and such solutions as Angular, ASP Net MVC, Ruby on Rails and other products, not worthy of your expert attention, made through the "ass" in your opinion. So I think it should be clear to you why I don't want to argue with you and prove the validity of my decision - it's just pointless.

 

In my case, the analogue of recording

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

is the entry

E_Trade_panel__AskLabel(DoubleToString(ask, Digits()));

In this case, I don't need to remember the name of a particular element. I write E_ and a list of items pops up, I type the first letters of the window name and it takes me to the list of items for a particular window, then I select the desired item from the list.

 

I wonder how you can connect a table of at least 100 cells without intelligences? After all, you have to remember the names of all the cells.

In my case, each cell is automatically named by row and column name, and its selection is done via intelligences. In your version, Vasiliy, you need to know exactly what each of the 100 cells is called.

And if I have 10 complex windows with lots of elements and large tables, how much time would it take to write names of elements in calls? I'd get exhausted).


And what if the names are the same between different windows?

 
Реter Konow:

I wonder how you can connect a table of at least 100 cells without intellisense?

I don't know Peter, because intellisense in MetaEditor works fine with all variables in C#, including arrays, structures, basic types, methods and even classes.

 
Vasiliy Sokolov:

I don't know Peter, because intellisense in MetaEditor works fine with all variables in C#, including arrays, structures, basic types, methods and even classes.

Does it show element names?

 
Реter Konow:

Does it show element names?

It does, with prototypes:

:))

 
Vasiliy Sokolov:

You bet, with prototypes:

:))

Vasily, you don't understand.

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

To set the value of an element, you send its name. The field "Ask" has the name "AskLabel". Where does the intellisense show the name of the element?

 
Реter Konow:

Vasily, you don't understand.

To set the value of an element, you send its name. The field "Ask" has the name "AskLabel". Where does the intellisense show the name of the element?

Peter, it feels like you're looking for something to complain about.

The answer is no, the intelligencer has never worked with a text element and will never do so. But if it's just a question, it's not a problem at all to make interlesence on the same defines.

s.s. By the way, it won't work for you either:

__, EDIT,"Set lot", W,150,_,H,60,_,V_CURRENT,"1.00",