Discussion of article "How to create a graphical panel of any complexity level" - page 4

 
Vladimir Karputov:

If YOU really do not see the difference, you urgently need to throw away the old terminal. The old terminal affects you badly. Unfortunately, the old terminal taught you to write very dangerous code - you are used to writing code WITHOUT CHECKS to return errors.

It wasn't a dig at your post by any means, it was more of a question as to why this is done so I learn for it - my programming knowledge is very limited.

 
emargrie :

It wasn't a dig at your post by any means, it was more of a question as to why this is done so I learn for it - my programming knowledge is very limited.

I have already explained: you cannot write code that does not check for error returns.

 
Vladimir Karputov:

I have already explained: you cannot write code that does not check for error returns.

Thanks 
 

Hi Vladimir 

this is a well written piece, good job

regards  Paul

 
Paul Anscombe:

Hi Vladimir 

this is a well written piece, good job

regards  Paul

Thanks 

 
Hi, is it possible to create 2 or more CAppDialogs, and have its own event handling. E.g create a CAppDialog(Main Window) that opens other CAppDialogs(Sub Windows), would you be able to give us an example of that
 
mree83 :
Hi, is it possible to create 2 or more CAppDialogs, and have its own event handling. E.g create a CAppDialog(Main Window) that opens other CAppDialogs(Sub Windows), would you be able to give us an example of that

I've never done this - I never needed to have more than one panel on a chart.

 
Vladimir Karputov:

I've never done this - I never needed to have more than one panel on a chart.

Thanks Vladimir. I will try and create one using your guidelines and see how it behaves
 
mree83:
Thanks Vladimir. I will try and create one using your guidelines and see how it behaves

Did anybody try to create a panel in a subwindow?

I did try but the panel was always created in the main chart?

 

Hi Vladimir,


Thank you so much for the article, its very helpful.  I was just wondering about some parts on changing the color of the m_client_area and m_background objects:

   int total=AppWindow.ControlsTotal();
   CWndClient*myclient;
   for(int i=0;i<total;i++)
     {
      CWnd*obj=AppWindow.Control(i);
      string name=obj.Name();
      PrintFormat("%d is %s",i,name);
      //--- color 
      if(StringFind(name,"Client")>0)
        {
         CWndClient *client=(CWndClient*)obj;
         client.ColorBackground(clrRed);
         myclient=client;
         Print("client.ColorBackground(clrRed);");
         ChartRedraw();
        }
      //---
      if(StringFind(name,"Back")>0)
        {
         CPanel *panel=(CPanel*) obj;
         panel.ColorBackground(clrGreen);
         Print("panel.ColorBackground(clrGreen);");
         ChartRedraw();
        }
     }

The highlighted parts are the items I wasn't sure about. To break it down, I understand what all of the code does, just not sure how it does it.  I wasn't about the two codes below:


1.Is it accessing a Control file like WndClient.mqh and what is the * for.

CWndClient *client=(CWndClient*)obj;

2. My other question was what are obj and Name(); as shown below.  I get obj is probably an object and the name part is for the name of the object.  However if I put obj.Name(); into any other code it doesn't understand it, so I know its unique to something from above.  I just wasn't sure how it fits in.

obj.Name();


I appreciate if you have the time to answer, and thank you in advance.