Erreurs, bugs, questions - page 1743

 
fxsaber:
Comment le débogueur peut-il voir quelle valeur la fonction a renvoyé via return ? J'ai mis un point d'arrêt sur le retour. Quand j'y arrive, j'appuie sur F10. Comment puis-je voir ce qu'il y a en retour ?
shift + F9 ('ajouter une montre')
Mais comme apparemment tout dans votre code est construit sur des classes, vous pouvez vous attendre à une douzaine de lettres de colère expliquant comment Meta Editore est horrible, mauvais et peu pratique pour le débogage)).
 
Je suis tombé sur un bon exemple dans le mien
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'
}
Le pourquoi de l'avertissement n'était pas évident au début. Un compilateur intelligent, cependant.
 
Sergey Dzyublik:
shift + F9 ('ajouter une montre')
Qu'y a-t-il à ajouter ?
 
Une variable à laquelle la fonction renvoie une valeur.
Si elle ne retourne rien, ou s'il y a plusieurs appels imbriqués, créez une variable pour que le résultat de la fonction puisse y être écrit et débogué.
 
Sergey Dzyublik:
La variable dans laquelle la fonction projette la valeur.
Si elle ne renvoie rien, ou si elle comporte plusieurs appels imbriqués, créez une variable pour pouvoir y écrire le résultat de la fonction et la déboguer.

Eh bien, toute personne intelligente peut le faire avec une variable. Mais je dois le faire comme un fou - sans ça.

Il existe de nombreuses fonctions de ce type.

  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));
  }

Et maintenant vous devez insérer une variable dans chacun d'eux ? Y a-t-il un autre moyen ?

 
Pourquoi OBJPROP_YOFFSET ne peut-il pas être rendu négatif ? Il n'y a pas de uint dans Help.
 
fxsaber:

Et maintenant, insérer une variable dans chacune d'elles ? Y a-t-il un autre moyen ?

Il est évident que ces fonctions doivent être renommées : GetPropertyLong, GetPropertyDbl. Pourquoi ont-elles le même nom ?

Dans le futur, les développeurs ont promis de modifier les modèles de fonctions pour pouvoir les appeler de la manière suivante : GetProperty<long>(...) Mais vous ne rendrez pas un modèle virtuel.

 
Alexey Navoykov:

Il est évident que ces fonctions devraient être renommées : GetPropertyLong, GetPropertyDbl. Pourquoi ont-elles le même nom ?

Je ne comprends pas pourquoi ils ont des noms différents. J'utilise celui-ci.

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); // Фиксированный минимум графика

À l'avenir, les développeurs ont promis de modifier les modèles de fonctions pour qu'ils puissent appeler de cette façon : GetProperty<long>(...) Mais vous ne rendrez pas ce modèle virtuel.

Je ne comprends pas l'exemple.

Je serais heureux d'écouter vos critiques (et celles d'autres utilisateurs compétents du forum) sur la stylistique architecturale et le ton de programmeur de mon code. Je le posterai sur kodobase, dès que je l'aurai terminé. Il n'y a jamais de honte à apprendre.

 
Lorsque vous essayez de supprimer un indicateur, un conseiller expert ou un script à partir de la fenêtre "Navigator", MT4 vous demande de confirmer la suppression. Ainsi, peu importe ce que vous essayez de supprimer (indicateur, EA ou script), le texte de la question ne change pas.

La question universelle "Supprimer l'EA ?"

MT4 Build 1010 (19 août 2016)

 
fxsaber:

Je ne comprends pas pourquoi des noms différents ? C'est comme ça que je l'utilise.

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

Je ne comprends pas l'exemple.

Je ne l'ai pas regardé attentivement au début, je pensais que vous aviez seulement une surcharge sur la valeur de retour. Et si c'est aussi un argument, alors c'est bon. Je ne sais pas de quoi tu parles, alors. Je n'ai pas pu trouver les messages originaux, d'où les citations sont tirées, dans ce fil.