Características da linguagem mql5, subtilezas e técnicas - página 188
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A questão é como iniciar um método não estático de uma classe por um ponteiro, mesmo que o objecto de outra classe (CTimer no nosso caso) seja uma propriedade (variável) da classe.
no.... claro que pode passar um ponteiro para outro objecto e mudar o ponteiro para lá chamar método...., mas precisa de saber o nome do método.
ZS: mas escreveu ontem, use um exemplo@fxsaber e herde, em cada classe será chamada pelo OnTimer , haverá apenas uma classe base no laço para verificar que temporizador tem que intervalo de temporizador, e o lançamento do temporizador principal no implemento do método estático
A questão é como se pode utilizar um ponteiro para executar um método não estático de uma classe, mesmo que o objecto de outra classe (neste caso o CTimer) seja uma propriedade (variável) dessa classe. Será possível? Receio que não.
- modelos
- interfaces
modelos:
Nenhuma implementação do temporizador em si aqui, apenas um exemplo de como chamar uma função não estática (escrito directamente no fórum, não verificado)
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
MT5 e Velocidade em Acção
fxsaber, 2020.10.04 11:56
Determina se um programa está ou não a funcionar numa máquina travada.
A questão é como executar um método de classe não estático por ponteiro mesmo que o objecto de outra classe (neste caso o CTimer) seja uma propriedade (variável) desta classe. E será isso possível? Receio que não.
Em termos gerais, é o que parece:
Pode descarregar a libra a partir daqui: https://github.com/sva04091979/STD/tree/TimerEvent. TimerEvent ramo, ainda não fundido no mestre.
no.... claro que pode passar um ponteiro para outro objecto e mudar o ponteiro para lá chamar método...., mas precisa de saber o nome do método.
ZS: mas escreveu ontem, use um exemplo@fxsaber e herde, em cada classe será chamada pelo OnTimer, só permanecerá na classe base no laço para verificar qual temporizador tem qual intervalo de temporizador, e o lançamento do temporizador principal no implemento do método estático
Igor, não entendo de que código fxsaber estamos a falar
modelos:
Não há implementação do temporizador em si, apenas um exemplo de como chamar uma função não estática (escrito directamente no fórum, não verificado)
Obrigado. Experimentei-o. Nada sai.
Em geral, é o que parece:
Descarregue a biblioteca a partir daqui: https://github.com/sva04091979/STD/tree/TimerEvent. TimerEvent branch, ainda não o fundi no master.
Obrigado. Mas também ainda não descobri como executar um método de classe não estático através do ponteiro.
Parece que não há solução para este problema no estado actual da linguagem MQL5Graças a todos vós, mas talvez não tenha formulado a tarefa correctamente ou não tenha encontrado uma solução no vosso artigo devido ao meu conhecimento limitado.
De que é que precisa?
Aqui está um exemplo de um indicador.
O método Timer4(marcado a azul) da classe CTestTimer é lançado pelo ponteiro da classe CTimer(no laço do método CTimer:: OnTimer) passou para a classe CTimer::NewTimer no momento da execução do construtor, quando o objecto da classe CTestTimer é criado.
Tentei tudo. Há um impasse. Não há maneira de obter um ponteiro para este método. Em C++ funciona através de: typedef void (CTestTimer::*TFun)();
E há um estranho erro: 'Timer4' - ponteiro para este tipo de função ainda não é suportado ('Timer4' - ponteiro para este tipo de função ainda não é suportado)
"Por agora" - como se o MQ pusesse esta questão de lado até tempos melhores.
Igor, não entendo de que código fxsaber estamos a falar
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
o valor deste código é.... bem, pode criar o seu próprio objecto dinâmico em qualquer parte do código -.... e não se preocupe em actualizá-lo, e ele será pregado por si mesmo quando sair do programa
o número de tais temporizadores é limitado apenas pela sua imaginação. quer mover um duende - criar um objecto que se arrastou da extremidade esquerda do ecrã para a direita e se matou - autonomia completa, por assim dizer
...demasiado preguiçoso para escrever um exemplo, não é uma tarefa interessante
https://www.mql5.com/ru/forum/325418/page4#comment_16116740
o valor deste código.... bem, pode criar o seu próprio objecto dinâmico.... em qualquer parte do código e não se preocupe em actualizá-lo e quando sair do programa, ele será pregado por si
o número de tais temporizadores é limitado apenas pela sua imaginação. Queria mover um duende - criou um objecto que se arrastava da extremidade esquerda do ecrã para a direita e se matava - por assim dizer, total autonomia
...demasiado preguiçoso para escrever um exemplo, não é uma tarefa interessante
Sim, dei uma vista de olhos rápida.
não o consegui
Sim, dei uma vista de olhos rápida.
não compreendeu esse ponto.
Não sei porque é que o código é assim agora, mas deveria ser:
mas não precisa destes métodos para o temporizador, imho.
ZS: o objecto pode matar-se desta forma
Não sei porque é que o código tem esse aspecto, mas deveria ter:
mas não precisa destes métodos para o temporizador, imho.
ZS: O objecto pode matar-se desta forma
Percebido, graças a si e ao @fxsaber. Guardei-o no meu mealheiro.
Mas, é claro, não há resposta à minha pergunta neste código.