Discussion of article "Developing graphical interfaces for Expert Advisors and indicators based on .Net Framework and C#" - page 12

 
Nikolai Karetnikov:

Good afternoon! )

Peter, what do you mean by "were" and what do you mean by "high"? There was a discussion on this topic somewhere or something

Afternoon! )
Yes, there have been discussions and quite a few. It turned out that when transferring data from mql to Sharpe tables at a timer frequency of 25ms, they are updated about once a second for some unknown reason. Whether the author or someone else managed to fix it, I do not know, but I assume that Vasily did not continue the series of articles because he did not solve the problem.

P.S. (By the way, they thought that after Vasily's article, nobody will need my markup language, but my tables work fine, and the connection is much more convenient and can be uploaded to the Market, because without DLL). :)
 
Реter Konow:
Kind! )
Yes, there has been some discussion and quite a bit of it. It turned out that when transferring data from mql to sharps tables at a timer frequency of 25ms, for some unknown reason they are updated about once a second. Whether the author or someone else managed to fix it, I don't know, but I assume that Vasily didn't continue the series of articles because he didn't solve the problem.

P.S. (By the way, they thought that after Vasily's article, nobody will need my markup language, but my tables work fine, and the connection is much more convenient and can be uploaded to the Market, because without DLL). :)

I see )))

Looks like you are right, either we have lost Vasily, or he has lost interest in the topic ).

 

slightly improved version of the TradePanel Expert Advisor

In the header of the form the name of the instrument [1], instead of the inscription sell and buy on the buttons current quotes [2], and the forms themselves 'already [3] and "stick" to the borders of the screen. Sticking - third-party software https://www.nurgo-software.com/products/aquasnap.

If someone would add a magnetising function to the .sln itself, it would be great at all

When starting the EA, it will ask where TradePanel.dll is located, so you don't have to specify it in the code


Window docking
Window docking
  • www.nurgo-software.com
Split your desktop in one easy gesture Drag and drop your windows to the sides or corners of the screen, and they'll automatically be resized to fit one half or one quarter of the screen. This feature is just like the built-in Aero Snap function of Windows 10 , but with more possibilities! This is especially useful on either a 4K monitor or...
Files:
TradePanel.zip  74 kb
 
Nikolai Karetnikov:

Rafil, did you figure out what the problem was?

solved it the same way you did, added an enumeration to mql

 
Hello  VASILIY SOKOLOV

First, thank you very much for your sample and share your idea.

I have download and use it well.

But I have an question it's about why we open the winform in DLL must be use the "MtGuiController.dll"?

Can it possible just import "TradePanel.dll" and use it without "MtGuiController.dll"?

Dose anybody knows how to do it, Thank you.

 

Hello! 

Thanks for your Idea! 

I have build an Form and used a TabelLayoutPanel. But If i now perform a click on a button in this TabelLayoutPanel nothing happens. 

Can someone help me with that?

PS: Same Button works without TabelLayoutPanel.

 

The controller is brilliant and you get really good ideas about what you could do, but the MT5 has one major problem:

Every *.dll that is included in the mq5 EA becomes unusable for other accesses, and the controller cannot forward data to other dlls.

This is probably due to the fact that the C# code is compiled directly and therefore various things cannot be done.

Furthermore, multiple forms cannot be managed, as I have to have every control that receives data on both forms or only on the first one.

The only way to get round this is to use a tab control in which you then build the various pages you need, trade, messages, history etc. Or you have to resort to C++.

Or you have to resort to C++, you can import these dll's and have to import the individual functions.

 
Arturo Minor:

You can use the numeric representation of each Event Type:

Event Type ID
Exception 0
ClickOnElement 1
TextChange 2
ScrollChange 3

Here is an example with SendEvent Function (This code is from TardePanel EA):

You change the representation of the event TextChange for its ID which is 2, and you do this for all the function that need it.


Thanks for the workarround. However, the answer to the original question is still interesting: why is the enumeration not accessible from the EA? The enumeration is declared as public. Why did it work for others? (Or didn't it?)


Thanks in advance for the help.

 
sachnyc:

was anybody able to figure out why there is below error?

The MQL compiler states : "Undeclared Identifier" for any of the enumerations down below.

I am also getting same error.


After a few tests.


To use the constants associated with the enumerations defined in the MtGuiController.dll file is necessary to use the MtGuiController name space before any constant.

For example instead of writing TextChange you have to write MtGuiController.TextChange.

 
Pete:

I'm relative new to MQL5 and I learned a lot from this article! Thanks very much!


I have one question. Have been struggling a bit for the past 2 days to figure this out down below.


I have successfully completed each step a couple of times even on another computer but everytime when I try to compile the code I get an error message.


The MQL compiler states : "Undeclared Identifier" for any of the enumerations down below.


If I "comment" these enumerations out from MQL5 then it works accordingly which is interesting since this means that the code works but can't read the enumerations which is my guess?

If someone can help me I would greatly appreciate :)


Thanks,


After a few tests.


To use the constants associated with the enumerations defined in the MtGuiController.dll file is necessary to use the MtGuiController name space before any constant.

For example instead of writing TextChange you have to write MtGuiController.TextChange.