Discusión sobre el artículo "Interfaces gráficas X: Control "Campo de edición del texto multilínea" (build 8)" - página 3

 
Carl Schreiber:

Echa un vistazo a la página del autor:

Hay una nueva versión del campo de texto y dos actualizaciones generales del código general y dos artículos aún no traducidos, tal vez haya algo allí, si no, escríbele un correo privado preferiblemente en alemán y las traducciones en inglés y ruso.


¡Muy bien Carl !

Gran consejo .... es en realidad incluido en la próxima versión. Lo he traducido.

Probablemente tendré que buscar los autores más a menudo.

La función que buscas es CTextBox::ActivateTextBox()

Saludos 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
 

Hola.

Has encontrado que el método CTimeCounter::CheckTimeCounter(void) está absolutamente mal implementado. Es decir, ¿dónde hay vinculación con el tiempo o los segundos? Sólo compara números. Por eso funciona continuamente.

GetTickCount() debería usarse en algún sitio.
 

No puedo entender por qué estamos accediendo a un método de clase

//--- Si el array está vacío, exit.
   if(CWndContainer::WindowsTotal()<1)
      return;

Si la clase actual hereda de

CWndContainer

¿Qué sentido tiene?

 

¿Por qué romper las cosas así?

protected:
   CChart            m_chart;
   //--- ID y número de la ventana del gráfico
   long              m_chart_id;
   int               m_subwin;
   //--- Nombre del programa
   string            m_program_name;
   //--- Nombre corto del indicador
   string            m_indicator_shortname;
   //---
private:
   //--- Parámetros del evento
   int               m_id;
   long              m_lparam;
   double            m_dparam;
   string            m_sparam;
   //---
protected:
                     CWndEvents(void);
                    ~CWndEvents(void);
   //--- Controlador de eventos del gráfico virtual
   virtual void      OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam) {}
   //--- Temporizador
   void              OnTimerEvent(void);
   //---
public:
   //--- Controladores de eventos de gráficos
   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);
   //--- Comprobación de eventos en los controles
   void              CheckElementsEvents(void);
   //--- Determinar el número de subventana
   void              DetermineSubwindow(void);
   //--- Comprobación de los eventos de los controles
   void              CheckSubwindowNumber(void);
   //--- Inicialización de los parámetros del evento
   void              InitChartEventsParams(const int id,const long lparam,const double dparam,const string sparam);
   //--- Mover la ventana
   void              MovingWindow(void);
   //--- Comprobación de eventos de todos los elementos por temporizador
   void              CheckElementsEventsTimer(void);
   //---
protected:
   //--- Borrar la interfaz
   void              Destroy(void);

Quiero decir, ¿por qué crear una masa

public:

protected:
private:

¿Por qué no anunciarlo de una vez?