Discussion of article "Graphical Interfaces X: The Multiline Text box control (build 8)" - page 3

 
Carl Schreiber:

Have a look at the author's page:

There is a new version of the text field and two general updates of the overall code and two articles not yet translated, maybe there is something there, otherwise write him a private mail preferably in German and the translations in English and Russian.


Very good Carl !

Great tip .... is actually included in the next version. I have translated it.

I'll probably have to browse the authors more often.

The function you are looking for is CTextBox::ActivateTextBox()

Greetings Christian

Nach dem Doppelklick auf die Tabellenzelle erscheint das Eingabefeld,
 aber um einen weiteren Klick auszuschließen,
 um das Eingabefeld zu aktivieren,
 wurde eine zusätzliche öffentliche Methode CTextBox :: ActivateTextBox () benötigt. 
Sein Anruf simuliert einen Klick auf das Eingabefeld.
 Um dies zu tun, rufen Sie einfach die Methode CTextBox :: OnClickTextBox () auf und übergeben Sie den Namen des Grafikobjekts des Elements. 
Die Auswahl des Textes erfolgt bereits bei dieser Methode
 

Hello.

Have you found that the CTimeCounter::CheckTimeCounter(void) method is absolutely incorrectly implemented. I mean, where is there binding to time or seconds? It's just comparing numbers. That's why it works continuously.

GetTickCount() should be used somewhere.
 

I can't understand why we are accessing a class method

//--- If the array is empty, exit.
   if(CWndContainer::WindowsTotal()<1)
      return;

If the current class inherits from

CWndContainer

What is the point ?

 

Why break things up like that?

protected:
   CChart            m_chart;
   //--- Chart window ID and number
   long              m_chart_id;
   int               m_subwin;
   //--- Programme name
   string            m_program_name;
   //--- Indicator short name
   string            m_indicator_shortname;
   //---
private:
   //--- Event parameters
   int               m_id;
   long              m_lparam;
   double            m_dparam;
   string            m_sparam;
   //---
protected:
                     CWndEvents(void);
                    ~CWndEvents(void);
   //--- Virtual graph event handler
   virtual void      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam) {}
   //--- Timer
   void              OnTimerEvent(void);
   //---
public:
   //--- Chart event handlers
   void              ChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
private:
   void              ChartEventCustom(void);
   void              ChartEventClick(void);
   void              ChartEventMouseMove(void);
   void              ChartEventObjectClick(void);
   void              ChartEventEndEdit(void);
   void              ChartEventChartChange(void);
   //--- Checking events in controls
   void              CheckElementsEvents(void);
   //--- Determine subwindow number
   void              DetermineSubwindow(void);
   //--- Checking the events of the controls
   void              CheckSubwindowNumber(void);
   //--- Initialisation of event parameters
   void              InitChartEventsParams(const int id,const long lparam,const double dparam,const string sparam);
   //--- Moving the window
   void              MovingWindow(void);
   //--- Checking events of all elements by timer
   void              CheckElementsEventsTimer(void);
   //---
protected:
   //--- Deleting the interface
   void              Destroy(void);

I mean, why create a mass

public:

protected:
private:

Why can't you just announce it once?