Olá. Quero evitar que os objetos do gráfico sejam deletado. Ocorre que quando deleto todos os objetos do gráfico (+ de 1000 objetos) o event CHARTEVENT_OBJECT_DELETE, somente está sendo gerado para 1000 objetos, tem como alterar esse valor, para processar todos os objetos deletados?
- Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos
- Tudo sobre falhas e erros do MetaTrader (problemas e soluções)
- Como excluir o ícone de compra e venda no gráfico MT5
Samuel Manoel De Souza:
Olá. Quero evitar que os objetos do gráfico sejam deletado. Ocorre que quando deleto todos os objetos do gráfico (+ de 1000 objetos) o event CHARTEVENT_OBJECT_DELETE, somente está sendo gerado para 1000 objetos, tem como alterar esse valor, para processar todos os objetos deletados?
Nao daria simplesmente para setar o objeto como escondido e nao selecionavel?
Olá. Quero evitar que os objetos do gráfico sejam deletado. Ocorre que quando deleto todos os objetos do gráfico (+ de 1000 objetos) o event CHARTEVENT_OBJECT_DELETE, somente está sendo gerado para 1000 objetos, tem como alterar esse valor, para processar todos os objetos deletados?
Ricardo Rodrigues Lucca:
Nao daria simplesmente para setar o objeto como escondido e nao selecionavel?
Nao daria simplesmente para setar o objeto como escondido e nao selecionavel?
Se eu for no menu do terminal e deletar todos os objetos, deleta também os escondidos e não selecionáveis.
Não encontrei nada sobre contornar isso. Então minha solução foi algo simples, mas que atende ao propósito.
static datetime last_undel_time = 0; static bool deleted_while_undeleting = false; if(id==CHARTEVENT_OBJECT_DELETE && StringFind(sparam,"Proj.")>=0) { if((TimeCurrent()-last_undel_time)>2) { last_undel_time = TimeCurrent(); for(int i=objects.Total()-1;i>=0;i--) { CProjection *proj = objects.At(i); proj.Undelete(); if((objects.Total()-i)==50) { ChartRedraw(0); } } ChartRedraw(0); } else { deleted_while_undeleting=true; } } if(deleted_while_undeleting && (TimeCurrent()-last_undel_time)>2) { deleted_while_undeleting = false; last_undel_time = TimeCurrent(); for(int i=objects.Total()-1;i>=0;i--) { CProjection *proj = objects.At(i); proj.Undelete(); if((objects.Total()-i)==50) { ChartRedraw(0); } } ChartRedraw(0); }
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