Salvar estado de um Controle

 

Boa tarde, pessoal, tudo bem com vocês?

Podem me tirar uma dúvida, estou começando a programar no MQL
tem algum post aqui que ensine como eu salvo o ultimo estado do Objeto CEdit, ou CButton

Exemplo: Digite o numero 2, quando eu fechar o EA ou mudar de timeframe, esse mesmo número "2" deve ficar no CEdit
Abaixo tem o código de exemplo da Documentação para criar um CEdit


class CControlsDialog : public CAppDialog 
  { 
private: 
   CEdit             m_edit;                          // CEdit objeto 
  
public: 
                     CControlsDialog(void); 
                    ~CControlsDialog(void); 
   //--- create 
   virtual bool      Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); 
   //--- chart event handler 
  
protected: 
   //--- create dependent controls 
   bool              CreateEdit(void); 
  }; 
//+------------------------------------------------------------------+ 
//| Constructor                                                      | 
//+------------------------------------------------------------------+ 
CControlsDialog::CControlsDialog(void) 
  { 
  } 
//+------------------------------------------------------------------+ 
//| Destructor                                                       | 
//+------------------------------------------------------------------+ 
CControlsDialog::~CControlsDialog(void) 
  { 
  } 
//+------------------------------------------------------------------+ 
//| Create                                                           | 
//+------------------------------------------------------------------+ 
bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) 
  { 
   if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) 
      return(false); 
//--- create dependent controls 
   if(!CreateEdit()) 
      return(false); 
//--- succeed 
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Create the display field                                         | 
//+------------------------------------------------------------------+ 
bool CControlsDialog::CreateEdit(void) 
  { 
//--- coordinates 
   int x1=INDENT_LEFT; 
   int y1=INDENT_TOP; 
   int x2=ClientAreaWidth()-INDENT_RIGHT; 
   int y2=y1+EDIT_HEIGHT; 
//--- create 
   if(!m_edit.Create(m_chart_id,m_name+"Edit",m_subwin,x1,y1,x2,y2)) 
      return(false); 
//--- permitimos modificar o conteúdo 
   if(!m_edit.ReadOnly(false)) 
      return(false); 
   if(!Add(m_edit)) 
      return(false); 
//--- succeed 
   return(true); 
  } 
//+------------------------------------------------------------------+ 
//| Global Variables                                                 | 
//+------------------------------------------------------------------+ 
CControlsDialog ExtDialog; 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
//--- create application dialog 
   if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) 
      return(INIT_FAILED); 
//--- run application 
   ExtDialog.Run(); 
//--- succeed 
   return(INIT_SUCCEEDED); 
  } 
//+------------------------------------------------------------------+ 
//| Expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason) 
  { 
//--- limpamos os comentários 
   Comment(""); 
//--- destroy dialog 
   ExtDialog.Destroy(reason); 
  } 
//+------------------------------------------------------------------+ 
//| Expert chart event function                                      | 
//+------------------------------------------------------------------+ 
void OnChartEvent(const int id,         // event ID   
                  const long& lparam,   // event parameter of the long type 
                  const double& dparam, // event parameter of the double type 
                  const string& sparam) // event parameter of the string type 
  { 
   ExtDialog.ChartEvent(id,lparam,dparam,sparam); 
  }
 
Maria J.:

Boa tarde, pessoal, tudo bem com vocês?

Podem me tirar uma dúvida, estou começando a programar no MQL
tem algum post aqui que ensine como eu salvo o ultimo estado do Objeto CEdit, ou CButton

Exemplo: Digite o numero 2, quando eu fechar o EA ou mudar de timeframe, esse mesmo número "2" deve ficar no CEdit
Abaixo tem o código de exemplo da Documentação para criar um CEdit


Tem artigos explicando como salvar informações no sqlite, eles usam como exemplo o historico de trades. Voce poderia se basear nesses pra fazer o que precisa.

https://www.mql5.com/pt/articles/7463

SQLite: trabalho nativo com bancos de dados SQL em MQL5
SQLite: trabalho nativo com bancos de dados SQL em MQL5
  • www.mql5.com
O desenvolvimento de estratégias de negociação está associado ao processamento de grandes quantidades de dados. Agora, em MQL5, você pode trabalhar com bancos de dados usando consultas SQL baseadas no SQLite. Uma vantagem importante desse mecanismo é que todo o banco de dados está contido em um único arquivo, localizado no computador do usuário.
 
Ricardo Rodrigues Lucca #:

Tem artigos explicando como salvar informações no sqlite, eles usam como exemplo o historico de trades. Voce poderia se basear nesses pra fazer o que precisa.

https://www.mql5.com/pt/articles/7463

Na verdade eu não queria usar SQLite eu vi , que tem como usar  a função abaixo, no entanto não consegui entender muito bem como faz com objetos CEdit
virtual bool  Save( 
   int  file_handle      // File handle 
   )