Hatalar, hatalar, sorular - sayfa 2040

 

Gösterge alt penceresinde çalışmıyor, neyi yanlış yapıyorum?

   datetime dt = 0 ; 
   double price = 0 ; 
   int window= ChartWindowFind ();
   ChartXYToTimePrice ( 0 , 5 , 34 ,window,dt,price);
   PrintFormat ("Window=%d  =>  time=%s  Price=%G",window, TimeToString (dt),price);

2017.10.15 05:35:36.060	i-Stp EURCHF,M30: Window= 0  =>  _Time=2017.09.29 22:00  _Price=0.904348
   datetime dt = 0 ; 
   double price = 0 ; 
   int window= ChartWindowFind ();
// ChartXYToTimePrice(0,5,34,window,dt,price);
   PrintFormat ( "Window=%d  =>  _Time=%s  _Price=%G" ,window, TimeToString (dt),price); 

2017.10.15 05:37:13.997	i-Stp EURCHF,M30: Window= 1  =>  _Time=1970.01.01 00:00  _Price=0
 
Yury Kulikov :

MouseMove(x,y,key) parametreleri kullanılır . İmlecin konumu ve fare düğmesine basılması belirlenir, ana hat, terminal arayüzünün yetenekleriyle değil, mql aracılığıyla hareket ettirilir, yani. program satırın hareketini değil, imlecin satıra göre konumunu takip eder. Hatların eş zamanlı hareketi, ana ve bağımlı hatların koordinatlarının eş zamanlı değişmesi ile sağlanmaktadır.

Garip, fare koordinatlarını hiç kullanmıyorum, sadece id == CHARTEVENT_MOUSE_MOVE öğesine tepki verin. Ve her şey yolunda gidiyor, ki bu aslında mantıklı.

Düzgünlük için özel DND gerekli değildir. Özel DND yaparsanız, tuval aracılığıyla özel nesneler yapın. Orada kesinlikle gecikme olamaz, çünkü. nesne her zaman aynıdır.

 
Vitaly Muzichenko :

Gösterge alt penceresinde çalışmıyor, neyi yanlış yapıyorum?

ne bekleniyor ve tam olarak ne çalışmıyor?
 
Kirill Belousov :
ne bekleniyor ve tam olarak ne çalışmıyor?

Alt penceredeki koordinatları dönüştürmesi ve fiyatı alması bekleniyordu.

Ana pencerede çalışır, baskılardan da görüleceği üzere alt pencerelerde çalışmaz.

Ayrıca işlev, alt pencerenin numarasını "0" ile, yani ana pencereyle değiştirir:

Преобразует координаты  X и Y графика в значения время и цена.
bool    ChartXYToTimePrice (
   long            chart_id,     // идентификатор графика
   int             x,             // координата X на графике
   int             y,             // координата Y на графике
   int &           sub_window,   // номер подокна
   datetime &      time,         // время на графике
   double &        price         // цена на графике
   );
 

Derlerken hata

 int f() { return 1 ; }
void OnStart () export
{
         for    ( int i = f();           ;) {} //(1) нормально
         for    (            ; int i = f();) {} //(2) 'i' - unexpected token
         while (             int i = f() ) {} //(3) 'i' - unexpected token
}
 
Vitaly Muzichenko :

Alt penceredeki koordinatları dönüştürmesi ve fiyatı alması bekleniyordu.

Ana pencerede çalışır, baskılardan da görüleceği üzere alt pencerelerde çalışmaz.

Ayrıca işlev, alt pencere numarasını "0" ile, yani ana pencereyle değiştirir:

Fonksiyon yardımından: X ve Y koordinatları, ana tablo penceresinin sol üst köşesinden sayılır.

x=5, y=34 ayrıca ana pencereye atıfta bulunur, bu nedenle çıkış penceresi=0

Başka bir pencerede "kendinizi bulmak" için Y'yi ana pencerenin yüksekliği kadar artırmayı deneyin

 
A100 :

Derlerken hata

ve ne, while(...) içinde koşulu kontrol etmek yerine beyan etmek ve atamak caiz midir?
 
Kirill Belousov :

Fonksiyon yardımından: X ve Y koordinatları, ana tablo penceresinin sol üst köşesinden sayılır.

x=5, y=34 ayrıca ana pencereye atıfta bulunur, bu nedenle çıkış penceresi=0

Başka bir pencerede "kendinizi bulmak" için Y'yi ana pencerenin yüksekliği kadar artırmayı deneyin

Bu kesinlikle cevap değil ve çıkış yolu değil.

Alt pencerenin numarasını belirtiyoruz ve 3 ve 4 olabilir, o zaman koordinatları nasıl belirtebiliriz?

İşlevde açık bir hata var.

 
Vitaly Muzichenko :

Bu kesinlikle cevap değil ve çıkış yolu değil.

Alt pencerenin numarasını belirtiyoruz ve 3 ve 4 olabilir, o zaman koordinatları nasıl belirtebiliriz?

İşlevde açık bir hata var.

Alt pencerenin numarasını belirtmiyoruz, ancak işlev bize (bu bir giriş değil, bir çıkış parametresidir) - fiyat grafiğinin belirtilen kimliğe sahip grafiğin hangi alt penceresinde bulunduğunu ve hangi fiyat ve zamana karşılık geldiğini söyler. O çizelgede belirttiğimiz X,Y koordinatları.
 
Kirill Belousov :
ve ne, while (...) içinde durumu kontrol etmek yerine beyan etmek ve atamak caiz midir?

Geliştiricilerin kontrol etmesine izin verin. C++ derler, ancak eski derleyicilerde (2) satırı [ancak (3) değil] bir hata verebilir