Hatalar, hatalar, sorular - sayfa 1743

 
Hata ayıklayıcıda işlevin dönüş yoluyla hangi değeri döndürdüğünü nasıl görebilirim? Dönüşte bir kesme noktası koydum. Geldiğimde F10'a basıyorum. Karşılığında ne olduğunu şimdi nasıl görebilirim?
 
fxsaber :
Hata ayıklayıcıda, işlevin dönüş yoluyla hangi değeri döndürdüğünü nasıl görebilirim? Dönüşte bir kesme noktası koydum. Geldiğimde F10'a basıyorum. Karşılığında ne olduğunu şimdi nasıl görebilirim?
shift + F9 ('izleme ekle')
ancak her şey sınıflar üzerine kurulu gibi göründüğü için, Meta Editore'de olduğu gibi yakında bir düzine kızgın mektup bekleyebilirsiniz, bu korkunç, kötü ve hata ayıklamaya uygun değil))
 
Güzel bir örnekle karşılaştım
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'
}
İlk başta uyarının neden yapıldığı belli değildi. Ancak akıllı derleyici.
 
Sergey Dzyublik :
shift + F9 ('izleme ekle')
Oraya ne getirilecek?
 
İçinde işlevin değerinin bozulduğu değişken.
Herhangi bir yere veya birkaç iç içe çağrıya dönmezse, işlevin sonucunu buraya yazıp hata ayıklayabilmeniz için bir değişken oluşturun.
 
Sergey Dzyublik :
İçinde işlevin değerinin bozulduğu değişken.
Herhangi bir yere veya birkaç iç içe çağrıya dönmezse, işlevin sonucunu buraya yazıp hata ayıklayabilmeniz için bir değişken oluşturun.

Bir değişkenle, akıllı herkes yapabilir. Ve bir aptal gibi ihtiyacım var - onsuz.

Bu özelliklerin birçoğu

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

Ve şimdi her birine bir değişken ekleyelim mi? Başka yol yok?

 
OBJPROP_YOFFSET neden negatif olamaz? Yardım uint içermez.
 
fxsaber :

Ve şimdi her birine bir değişken ekleyelim mi? Başka yol yok?

Açıkçası, bu işlevlerin yeniden adlandırılması gerekir: GetPropertyLong, GetPropertyDbl. Neden aynı isimlere sahipler?

Gelecekte geliştiriciler, işlev şablonlarını şu şekilde çağrılabilmeleri için tamamlamaya söz verdiler: GetProperty<long>(...). Ama artık sanal bir şablon yapamazsınız.

 
Alexey Navoykov :

Açıkçası, bu işlevlerin yeniden adlandırılması gerekir: GetPropertyLong, GetPropertyDbl. Neden aynı isimlere sahipler?

Neden farklı isimler var anlamıyorum? Ben böyle kullanıyorum

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

Gelecekte geliştiriciler, işlev şablonlarını şu şekilde çağrılabilmeleri için tamamlamaya söz verdiler: GetProperty<long>(...). Ama artık sanal bir şablon yapamazsınız.

Örneği anlayamadım.

Kodunuzun mimari stili ve programlama tonuyla ilgili eleştirilerinizi (ve forumun diğer yetkili üyelerini) memnuniyetle dinlerdim. İşim bittiğinde kod tabanında yayınlayacağım. Öğrenmek asla utanç verici değildir.

 
Navigator penceresinden bir göstergeyi, danışmanı veya komut dosyasını kaldırmaya çalışırken, MT4 sizden kaldırmayı onaylamanızı isteyecektir. Yani neyi silmeye çalıştığınızın (gösterge, danışman veya script) bir önemi yoktur, sorunun metni değişmez.

Evrensel soru &quot;Danışmanı kaldırılsın mı?&quot;

MT4 Yapı 1010 (19 Ağu 2016)