Control classes without CDialog - How to work with CComboBox(), CListView(), CSpinEdit and so on ... - page 2

 
Doerk:

If it works with the panel, there must be a solution how to make it work also without, cause the CDialog is n not a kind of a wizard ;)

Anyway, I am one step further: If I use the debugger, and go through step by step, the List drops down, but when I simply let it run, it does not. WTF? :D I will figure it out ;) 

probably you need to put in an expert OnTick because your script/expert OnInit does not live enought for recieving events.try putting a timer with 5 seconds and has onchartevent
 

If anybody else is reading this, the reason for these problems with the Controls, when you try to use them outside CDialog is the missing signal processing which CDialog does within the "abstraction" of OnChartEvent(). Rather you make a copy of CDialog and modify it on your own, make it invisble whatever, and then continue your programming on that base instead of trying to reproduce the signal processing itself. 

 If you do it the way i described it above, you will end in a recursion of the OnChartEvent, because CDialog produces numerous custom events.  

 

I dont know if the article below can answer the problem. But it seem he doesnt use standard library class such as CDialog.

 https://www.mql5.com/en/articles/313

Custom Graphical Controls. Part 2. Control Library
Custom Graphical Controls. Part 2. Control Library
  • 2011.12.14
  • Dmitry Fedoseev
  • www.mql5.com
The second article of the "Custom Graphical Controls" series introduces a control library for handling the main problems arising in interaction between a program (Expert Advisor, script, indicator) and a user. The library contains a great number of classes (CInputBox, CSpinInputBox, CCheckBox, CRadioGroup, CVSсrollBar, CHSсrollBar, CList, CListMS, CComBox, CHMenu, CVMenu, CHProgress, CDialer, CDialerInputBox, CTable) and examples of their use.
 
Irwan Adnan:

I dont know if the article below can answer the problem. But it seem he doesnt use standard library class such as CDialog.

 https://www.mql5.com/en/articles/313

Thank you. I studied everything in the meanwhile and dropped all these classes in the meanwhile, because theyre simply not working as they should, theyre buggy and the architecture is not good enough to achieve a good performance and not designed for multithreading. 
 
Doerk:
Thank you. I studied everything in the meanwhile and dropped all these classes in the meanwhile, because theyre simply not working as they should, theyre buggy and the architecture is not good enough to achieve a good performance and not designed for multithreading. 
Multi-threading for a GUI ? what do you mean.
 
Vladimir Karputov:
Here's an example from MQL5. Simply remove the folder in C:\Users\ * * \AppData\Roaming\MetaQuotes\Terminal\ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \MQL4\Experts\


hi Vladimir,

Would you let me know the reason that we need to remove the folder? i am currently working on my EA and would like to add a ComboBox into it. 

 
chyethiam:


hi Vladimir,

Would you let me know the reason that we need to remove the folder? i am currently working on my EA and would like to add a ComboBox into it. 


You responded to very old message (it is two years old already). I don't support development on the old terminal for a long time.
 
Anybody found a solution for this? I have the same problem
 
Hi everybody. I'm bumping this thread since I encountered the same problem as OP. I want to use CComboBox (and other complex controls) without CAppDialog and I'm stuck with event processing. I'll probably end up writing my own class based on CDialog/CAppDialog event processing but maybe in the meantime someone has found a way or written such a class and could share it here? Thanks is advance!
 
Marcin Madrzak:
Hi everybody. I'm bumping this thread since I encountered the same problem as OP. I want to use CComboBox (and other complex controls) without CAppDialog and I'm stuck with event processing. I'll probably end up writing my own class based on CDialog/CAppDialog event processing but maybe in the meantime someone has found a way or written such a class and could share it here? Thanks is advance!

You can use C # as a library Form dialog for this and then you call on MT4 / MT5 even the form you created can be run in Tester mode.

Reason: