Reproduzi o problema. Tenho que redimensionar o painel quando o controle deslizante está na parte superior do painel. Depois disso, o controle deslizante e todos os elementos do painel ficam suspensos.
Bem, se o erro estiver presente, significa que ele está lá. Execute-o com um depurador, pois essa é a maneira mais segura de ver o que está acontecendo.
Movi o projeto para uma pasta com um nome diferente e renomeei o arquivo do indicador, e ele funciona sem erros.
Em compilações recentes, adicionamos uma mensagem ao compilador para os casos em que um método ancestral é sobrecarregado em um descendente:
deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
Exemplo
struct SFoo
{
staticvoid func(int)
{
Print(__FUNCSIG__);
}
};
struct SBar : SFoo
{
staticvoid func(double)
{
Print(__FUNCSIG__);
}
};
voidOnStart()
{
SBar::func(_Digits); // !!! será chamado de SFoo::func(int) - é mais apropriado.
}
Nesse caso, a função func(int) do ancestral SFoo é chamada na classe descendente SBar, porque o compilador não a encontrou no descendente. O descendente tem apenas a função func(double), e o compilador tenta encontrar uma função com um parâmetro adequado na árvore de herança.
Ou seja, o compilador MQL5 executa a sobrecarga em vez de substituir o método no descendente. No início do desenvolvimento da linguagem, esse relaxamento do compilador MQL5 não foi considerado crítico. Mas ele pode ser alterado no futuro, então agora há um aviso explícito para que os desenvolvedores de programas MQL5 levem em conta e corrijam seus códigos.
Estritamente falando, a substituição é um conceito um pouco mais amplo, você pode pesquisar a diferença entre sobrecarga e substituição na Internet .
Não estou entendendo nada, mas é muito interessante! O compilador xinga várias funções, aqui está uma delas, onde ele não gosta?
//+------------------------------------------------------------------+//| A disponibilidade do elemento|//+------------------------------------------------------------------+void CElement::IsAvailable(constbool state)
{
//--- Sair se já estiver definidoif(state==CElementBase::IsAvailable())
return;
//--- Conjunto
CElementBase::IsAvailable(state);
//--- Outros elementosint elements_total=ElementsTotal();
for(int i=0; i<elements_total; i++)
m_elements[i].IsAvailable(state);
//--- Definir prioridades para cliques no botão esquerdo do mouseif(state)
SetZorders();
else
ResetZorders();
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Reproduzi o problema. Tenho que redimensionar o painel quando o controle deslizante está na parte superior do painel. Depois disso, o controle deslizante e todos os elementos do painel ficam suspensos.
Olá
Alguém encontrou a causa da falha na postagem acima?
Recebo o erro"matriz fora do intervalo em 'WndEvents.mqh' (287,72)"
Olá
Alguém encontrou a causa da falha na postagem acima?
Recebo o erro "matriz fora do intervalo em 'WndEvents.mqh' (287,72)"
Coloco uma verificação de fora do intervalo lá e é isso.
basta colocar uma verificação de ultrapassagem e pronto.
É uma ideia interessante, mas como?
Com 12 elementos, teoricamente não deveria haver nenhum fora do intervalo.
(Exemplo do TradePanelTest da série de artigos)
É uma ideia interessante, mas como?
Com 12 elementos, teoricamente não deve haver nenhum fora de alcance.
(Exemplo de TradePanelTest da série de artigos)
Bem, se houver um erro, isso significa que há um erro. Execute-o com um depurador, pois é a maneira mais segura de ver o que está acontecendo.
Bem, se o erro estiver presente, significa que ele está lá. Execute-o com um depurador, pois essa é a maneira mais segura de ver o que está acontecendo.
Movi o projeto para uma pasta com um nome diferente e renomeei o arquivo do indicador, e ele funciona sem erros.
Eu nasci na segunda-feira :O)
Em compilações recentes, adicionamos uma mensagem ao compilador para os casos em que um método ancestral é sobrecarregado em um descendente:
deprecated behavior, hidden method calling will be disabled in a future MQL compiler versionExemplo
Nesse caso, a função func(int) do ancestral SFoo é chamada na classe descendente SBar, porque o compilador não a encontrou no descendente. O descendente tem apenas a função func(double), e o compilador tenta encontrar uma função com um parâmetro adequado na árvore de herança.
Ou seja, o compilador MQL5 executa a sobrecarga em vez de substituir o método no descendente. No início do desenvolvimento da linguagem, esse relaxamento do compilador MQL5 não foi considerado crítico. Mas ele pode ser alterado no futuro, então agora há um aviso explícito para que os desenvolvedores de programas MQL5 levem em conta e corrijam seus códigos.
Estritamente falando, a substituição é um conceito um pouco mais amplo, você pode pesquisar a diferença entre sobrecarga e substituição na Internet
.
Não estou entendendo nada, mas é muito interessante! O compilador xinga várias funções, aqui está uma delas, onde ele não gosta?
Não estou entendendo nada, mas é muito interessante! O compilador xinga várias funções, aqui está uma delas, onde ele não gosta?
Porque há também
Tentei alterá-la para
está tudo bem )
E o mesmo terá de ser feito com as outras)