Çaydanlıktan gelen sorular - sayfa 138

 
joo :
Bir komut dosyası değilse, tüm mantığı OnChartEvent()'e/'den yapın/çağırın mı?

peki, nerede olursanız olun. bir zamanlayıcı da var.

döngüsel mantığa ihtiyacınız varsa, bir zamanlayıcı kullanabilirsiniz

mantık olay tabanlıysa, o zaman chartevent'te.

 
sergeev :

peki, nerede olursanız olun. bir zamanlayıcı da var.

döngüsel mantığa ihtiyacınız varsa, bir zamanlayıcı kullanabilirsiniz

mantık olay tabanlıysa, o zaman chartevent'te.

Böyle bir mantık:

1. Programın başlatılması (tabloda gösterilmiştir).

2. İletişim kutusundan (dosya listesi) dosya adını aldım.

3. Dosya adına göre dosyayı açtı , verileri aldı, işledi.

4. Programdan çıkın.

Aslında her şey. Bu iş nasıl organize edilebilir, lütfen en azından şematik olarak gösterin.

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
joo :

Böyle bir mantık:

1. Programın başlatılması (tabloda gösterilmiştir).

OnInit. Diski taradı, dosyaları buldu, bir liste kutusu oluşturdu (Kontroller)

2. İletişim kutusundan (dosya listesi) dosya adını aldım.

OnChartEvent. Fare tıklamalarını işlendik, listenin hangi satırında sırasıyla bir tıklama vardı, dosyayı biliyoruz.

3. Dosya adına göre dosyayı açtı , verileri aldı, işledi.

OnChartEvent. "GO" düğmesine işlenen fare tıklamaları. Listeden hatırlanan dosya adını aldım. Ayrıca tamamen bu dosyanın verilerini işlemeniz.

4. Programdan çıkın.

UzmanKaldır()

 
sergeev :
...

Şimdi daha net oldu teşekkürler.

ama işte bir örnek, zabatsal uzmanı. grafikte hiçbir şey olmadığında bile yazdırılır - ve böyle olmamalıdır:

 #include <Controls\ControlsDialog.mqh>
CControlsDialog ExtDialog;

int OnInit ()
{
//--- create application dialog
   if (!ExtDialog.Create( 0 , "Controls" , 0 , 20 , 20 , 360 , 324 ))
     return (- 1 );
//--- run application
  ExtDialog.Run();
   return ( 0 );
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
{
//--- destroy dialog
  ExtDialog.Destroy();
}
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,         // event ID  
                   const long & lparam,   // event parameter of the long type
                   const double & dparam, // event parameter of the double type
                   const string & sparam) // event parameter of the string type
{
  ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   Print ( "dsfsdfsdfsdf" );
}
//+------------------------------------------------------------------+
 
Yedelkin :

Eh, herhangi bir sınıf yöntemi normal koddur. Bu kodu ayrıştırmayı deneyin:

Teşekkür ederim! İşe aldım.
 
joo :

Şimdi daha net oldu teşekkürler.

ama işte bir örnek, zabatsal uzmanı. grafikte hiçbir şey olmadığında bile yazdırılır - ve böyle olmamalıdır:

hayır hayır, baskı oraya gidiyor, çünkü grafiği fare ile sürüyorsunuz.

 
sergeev :

hayır hayır, baskı oraya gidiyor çünkü grafiği fare ile sürüyorsunuz.

Gerçekten de, o bir günahkar - fareyi tablonun üzerinde hareket ettirdi ve bu nedenle yazdırıyor.
 

Tünaydın.

Meraktan soru. Bunun gibi kod:

 class cl2;

class cl1
{
public :
         int q;
         void fn2(cl2 &t){t.i = 87 ;}
};


class cl2
{
public :
         int i;
         void fn(cl1 &w){w.q = 9 ;}
};

Fikir şudur:

  • İki sınıf var (#1 ve #2)
  • 1. sınıf 2. sınıfla uğraşıyor
  • 2. sınıf 1. sınıfta tamircilik

MQL'de hatasız derler, VS'de istemez (bir sınıfı tanımsız kullanamayacağınızı söyleyin). Niye ya?

 
220Volt :

MQL'de hatasız derler, VS'de istemez (bir sınıfı tanımsız kullanamayacağınızı söyleyin). Niye ya?

Patamushta mql5 - daha iyi!

;)

 
MetaDriver :

Patamushta mql5 - daha iyi!

;)

Evet, bir artı koymanız gerekiyor gibi görünüyor))