Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 366

 
msl271170:

Obrigado, acho que consegui.

E como você executa o depurador em dados históricos?


Fico feliz em ajudar.

A depuração só é possível na história em MT5.

 
Aleksey Vyazmikin:

Feliz por ajudar.

A depuração só é possível na história em MT5.


Eu entendo que o MT5 tem uma linguagem de programação diferente. Será que meu código não funcionará lá?

 
msl271170:

Eu entendo que o MT5 tem uma linguagem de programação diferente. Será que meu código não funcionará lá?

Ninguém viu seu código. É por isso que é difícil dizer. Mas os idiomas são quase os mesmos.
 

Em anexo, encontra-se um painel baseado no exemplo da SB. Limpei o código para deixar apenas o que é relevante para a pergunta, código fonte anexado.



Você pode me dizer como colorir o cabeçalho e a área principal, na qual prendemos os elementos?
Parece que estes objetos estão na classe Diálogo pai,

private:
   //--- dependent controls
   CPanel            m_white_border;        // the "white border" object
   CPanel            m_background;          // the background object
   CEdit             m_caption;             // the window title object
   CBmpButton        m_button_close;        // the "Close" button object
   CWndClient        m_client_area;         // the client area object

E eles têm métodos correspondentes


Mas como chegar corretamente aos campos privados?

Arquivos anexados:
 
Vasiliy Pushkaryov:

Em anexo, encontra-se um painel baseado no exemplo da SB. Eu limpei o código para deixar apenas o que é relevante à questão, o código fonte está anexado.



Você pode me dizer como colorir o cabeçalho e a área principal, na qual prendemos os elementos?
Parece que estes objetos estão na classe Diálogo pai,

E eles têm métodos correspondentes


Mas como chegar corretamente aos campos privados?

Você tem uma lista de métodos de acesso a estes campos na foto. Os métodos são públicos?
 
Artyom Trishkin:
Você tem uma lista de métodos de acesso a estes campos na foto. Os métodos são públicos?

Não. Eu o digitei em CDialog no construtor, capturei, depois coloquei tudo de volta

 
Artyom Trishkin:
Você tem uma lista de métodos de acesso a estes campos na foto. Os métodos são públicos?

Existe um método público CDialog::CreateCaption(), CreateClientArea(). Os painéis são criados ali e suas cores são definidas através de CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.

Tentei ignorar estas variáveis em minha classe através da undef e defini-las novamente. E então executar novamente os métodos Create..., mas como os objetos já foram criados, um erro 4200 é devolvido - o objeto já existe.

Adicionado:

O erro 4200 é quando eu verifiquei no MT4.

 
Vasiliy Pushkaryov:

Existe um método público CDialog::CreateCaption(), CreateClientArea(). Os painéis são criados ali e suas cores são definidas através de CONTROLS_DIALOG_COLOR_BG e CONTROLS_DIALOG_COLOR_CLIENT_BG.

Tentei ignorar estas variáveis em minha classe através da undef e defini-las novamente. E então executar novamente os métodos Create..., mas como os objetos já foram criados, um erro 4200 é devolvido - o objeto já existe.

Adicionado:

O erro 4200 é quando eu verifiquei no MT4.

Honestamente, nunca usei estes recursos da SB. Mas o que o impede de olhar em SB onde, por quais métodos, as cores são definidas. O que você mostrou na lista:

private:
   //--- dependent controls
   CPanel            m_white_border;        // the "white border" object
   CPanel            m_background;          // the background object
   CEdit             m_caption;             // the window title object
   CBmpButton        m_button_close;        // the "Close" button object
   CWndClient        m_client_area;         // the client area object

- são nomes de objetos - classes CPanel, CEdit, CBmpButton e CWndClient.

E você precisa encontrar nomes de membros dessas classes onde as cores são armazenadas e usar quais métodos podem ser inicializados ou alterados.

E provavelmente você terá que inicializá-los primeiro e depois construir o próprio objeto.

 

Olá!

Ao compilá-lo, fornece"identificador não declarado" (undeclared identifier)

Eu procurei e procurei, mas não entendi o que deveria fazer para corrigir o erro

Ajude, por favor!

Arquivos anexados:
Image_2.jpg  524 kb
 
Kedrov: Ao compilar, aparece"identificador não declarado".
Clique na mensagem de erro. O cursor apontará para o nome da variável. Deve ser declarado
Razão: