Erros, bugs, perguntas - página 1743

 
Como pode o depurador ver qual o valor da função devolvida via retorno? Coloco um ponto de paragem no regresso. Quando chego a ele, carrego em F10. Como posso ver o que saiu do regresso?
 
fxsaber:
Como pode o depurador ver qual o valor da função devolvida via retorno? Coloco um ponto de paragem no regresso. Quando chego a ele, carrego em F10. Como posso ver o que é em troca?
turno + F9 ('adicionar relógio')
Mas como aparentemente tudo no seu código é construído sobre classes, pode esperar cerca de uma dúzia de cartas zangadas explicando como a Meta Editore é horrível, má e inconveniente com a depuração))
 
Tropeçou num bom exemplo no meu
class A
{
public:
  void operator =( const string Value ) const { return; }

  void operator =( const int Value ) { return; }
};

void OnStart()
{
  const A a;

  a = 0; // implicit conversion from 'number' to 'string'
}
Não era óbvio, no início, porquê o aviso. Compilador inteligente, no entanto.
 
Sergey Dzyublik:
turno + F9 ('adicionar relógio')
O que é que há a acrescentar?
 
Uma variável para a qual a função devolve um valor.
Se não regressar a lugar nenhum, ou se houver várias chamadas aninhadas, criar uma variável para que o resultado da função possa ser aí escrito e depurado.
 
Sergey Dzyublik:
A variável em que a função lança o valor.
Se não regressar a lado nenhum, ou se tiver várias chamadas aninhadas, crie uma variável para que aí possa escrever o resultado da função e depurá-la.

Bem, qualquer pessoa esperta pode fazê-lo com uma variável. Mas eu preciso de o fazer como um tolo - sem ele.

Há muitas funções como esta.

  virtual bool SetProperty( const ENUM_CHART_PROPERTY_INTEGER id, const int Value ) const
  {
    return(::ChartSetInteger(this.chartID, id, Value));
  }

  virtual bool SetProperty( const ENUM_CHART_PROPERTY_DOUBLE id, const double Value ) const
  {
    return(::ChartSetDouble(this.chartID, id, Value));
  }

  virtual long GetProperty( const ENUM_CHART_PROPERTY_INTEGER Property, const int SubWindow = 0 ) const
  {
    return(::ChartGetInteger(this.chartID, Property, SubWindow));
  }
  
  virtual double GetProperty( const ENUM_CHART_PROPERTY_DOUBLE Property, const int SubWindow = 0 ) const
  {
    return(::ChartGetDouble(this.chartID, Property, SubWindow));
  }

E agora tem de inserir uma variável em cada uma delas? Existe outra forma?

 
Porque é que o OBJPROP_YOFFSET não pode ser tornado negativo? Não há nada de útil na Ajuda.
 
fxsaber:

E agora inserir uma variável em cada uma delas? Existe outra forma?

Obviamente estas funções devem ser renomeadas: GetPropertyLong, GetPropertyDbl. Porque é que têm o mesmo nome?

No futuro, os programadores prometeram modificar os modelos de funções para poderem chamá-los da seguinte forma: GetProperty<long>(...) Mas não tornará um modelo virtual.

 
Alexey Navoykov:

Obviamente estas funções devem ser renomeadas: GetPropertyLong, GetPropertyDbl. Porque é que têm o mesmo nome?

Não compreendo porque é que têm nomes diferentes. Eu uso este.

this.SetProperty(OBJPROP_XSIZE, (int)CHARTOBJECT::GetProperty(CHART_WIDTH_IN_PIXELS)); // Ширина объекта по оси X в пикселях
this.SetProperty(OBJPROP_YSIZE, (int)CHARTOBJECT::GetProperty(CHART_HEIGHT_IN_PIXELS)); // Ширина объекта по оси Y в пикселях

this.SetProperty(OBJPROP_DATE_SCALE, false); // Признак отображения шкалы времени для объекта "График"

this.SetProperty(OBJPROP_BACK, false); // Объект на заднем плане

this.SetProperty(CHART_AUTOSCROLL, false); // Режим автоматического перехода к правому краю графика
this.SetProperty(CHART_SHIFT, false); // Режим отступа ценового графика от правого края

this.SetProperty(CHART_SHOW_OHLC, false); // Отображение в левом верхнем углу значений OHLC
this.SetProperty(CHART_SHOW_PERIOD_SEP, false); // Отображение вертикальных разделителей между соседними периодами
this.SetProperty(CHART_SHOW_VOLUMES, CHART_VOLUME_HIDE); // Отображение объемов на графике
this.SetProperty(CHART_SHOW_TRADE_LEVELS, false); // Отображение на графике торговых уровней (уровни открытых позиций, Stop Loss, Take Profit и отложенных ордеров)  

this.SetProperty(CHART_MODE, CHART_LINE); // Тип графика (свечи, бары или линия)
this.SetProperty(CHART_COLOR_CHART_LINE, clrNONE); // Цвет линии графика и японских свечей "Доджи"

this.SetProperty(CHART_SCALEFIX, true); // Цвет линии графика и японских свечей "Доджи"

this.SetProperty(CHART_FIXED_MAX, 1.5); // Фиксированный максимум графика
this.SetProperty(CHART_FIXED_MIN, 1.0); // Фиксированный минимум графика

No futuro, os programadores prometeram modificar os modelos de funções para que pudessem chamar desta forma: GetProperty<long>(...) Mas não tornarão este modelo virtual.

Não compreendo o exemplo.

Terei todo o prazer em ouvir os vossos (e outros utilizadores competentes do fórum) críticos (com toda a seriedade) sobre a estilística arquitectónica e o tom de programador do meu código. Vou colocá-lo em kodobase, assim que o terminar. Nunca é uma vergonha aprender.

 
Quando se tenta apagar um indicador, Expert Advisor ou script da janela "Navigator", o MT4 pede-lhe para confirmar a eliminação. Assim, independentemente do que estiver a tentar apagar (indicador, EA ou guião), o texto da pergunta não muda.

A pergunta universal "Remover EA?

MT4 Build 1010 (19 Ago 2016)