""Yeni Başlayanlar" için MQL: Nesne Sınıfları Nasıl Tasarlanır ve Oluşturulur?" makalesi için tartışma - sayfa 2

 

Emin olmak için terminali indirilebilir olana yükselttim.

kütüphaneyi güncelledim, bu kesin.

terminali çalıştırdım, dosyayı açtım ve işte burada.

Düğmelerin gruplanmasını gerçekten beğendim =))))))

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

Lütfen bu uygulama için gerekli tüm dosyaları 1 arşivde yükleyebilir ve bir MQL5 klasörü olacak şekilde yapıya uyabilir misiniz?

Tüm dosyaların normal şekilde açıldığını ve okunabilir içeriğe sahip olduğunu kontrol ettim.

 
CoreWinTT:

Lütfen bu uygulama için gerekli tüm dosyaları 1 arşivde yükleyebilir ve bir MQL5 klasörü olacak şekilde yapıya uyabilir misiniz?

Tüm dosyaların normal şekilde açıldığını ve okunabilir içeriğe sahip olduğunu kontrol ettim.

size özel mesaj olarak gönderildi.
 

Teşekkürler.

Şimdi her şey çalışıyor, normal bir şekilde derleniyor, belki de sorun sunucuya yanlış yüklenen bir bit dosyasındaydı ya da indirirken bir hata almış olabilirim ama fark etmedim.

Genel olarak dosya sayısı 5'ten fazla tek tek indirmek çok sakıncalı, bir arşiv veya tüm kurulum programı yapmak harika olurdu.

Anlamaya devam edeceğim ve bir yere koymaya çalışacağım, sonuçları rapor edeceğim.

Genel olarak, çapraz düğmenin işleyişini gerçekten seviyorum.

ancak simge durumuna küçült düğmesi hayal kırıklığı yaratıyor ........

çalışmıyor ve anladığım kadarıyla aşağıdaki satırların altında simge durumuna küçültmesi gerekiyor?

 

Genel olarak, oldukça bilgilendirici bir makale. sadece "wikipedia" ya çok fazla referans var.

Ve böylece, her şeyin tıklandığı ve eklendiği böyle bir menü için profesyonel bir kurucu olduğu ortaya çıkıyor, genel olarak çalışıyor.

Bu mucizenin hücrelerine nasıl erişileceğine dair basit bir kılavuza sahip olmak da çok güzel olurdu.

ve Uzman Danışmanın tik olayında hücrelerden değerleri okuduğunu varsayalım.

ve bu hücreler, oninit işlemi sırasında giriş parametreleri ile doldurulacaktır.

Yoksa böyle bir şeyi kendim mi yazmam gerekiyor????

ve bu görsel bir kurucu olarak mı hizmet ediyor?

 

Değerli yorumlarınız için teşekkürler. Bunların üzerinde zaten kafa yordum ve çoğunu düzeltmeye çalışacağım.

 

türünden bir dizi yapı oluşturmak için

tüm programa açık olacak

ve bu formatta veri depolayacak olan

ve bu değerlere atıfta bulunabilmek için

Header[1].2 sütunu olarak.

en azından veri türü dize ile

Burada zaten benzer bir şey olduğunu görüyorum.

string Mstr[][3]=
  {
     {"MACD","",""},
     {"NEW1","metod",""},
     {"elders","new2",""},
     {"Fast","new3",""},
     {"Slow","new4",""},
     {"Signal","new5",""},
     {}
  };

İki boyutlu bir dizi gibi.

ve böyle bir şey yaparsanız azarlıyor.

     {"NEW1",""+TrailingStop+"",""},


Muhtemelen getter ve setter kapsüllemeyi bölemez.

 

Her hücrenin kendine özgü bir adı vardır. Fare imlecini nesnenin üzerine getirerek bunu görebilirsiniz. ClassMasterWindowsEXE.mqh dosyası hücrelere nasıl erişileceğini gösterir.

//+------------------------------------------------------------------+
//| Olayları yakalama ve işleme yöntemi OnChartEvent() |
//+------------------------------------------------------------------+
void CMasterWindowsEXE::OnEvent(const int id,
                                const long &lparam,
                                const double &dparam,
                                const string &sparam)
  {
   if(on_event) // olay işleme etkinleştirildi
     {
      //--- ana pencerede BAŞLAT düğmesine basılması
      if(id==CHARTEVENT_OBJECT_CLICK
         && StringFind(sparam,"CWin1",0)>=0
         && StringFind(sparam,"STR19",0)>0
         && StringFind(sparam,".Button",0)>0)
        {
         Generator();
        }
      //--- değişkenleri EDIT STR18 düzenleyicisinde düzenleyin
      if(id==CHARTEVENT_OBJECT_ENDEDIT
         && StringFind(sparam,"CWin1",0)>=0
         && StringFind(sparam,"STR18",0)>0)
        {
         string textedit=ObjectGetString(0,sparam,OBJPROP_TEXT);
         if(StringFind(textedit,".",0)>=0)
           {
            ObjectSetString(0,sparam,OBJPROP_TEXT,"");
            ChartRedraw();
            MessageBox("Dosya adı nokta içermemelidir!","Dosya adı hatası.",MB_OK);
           }
         else nameFile=textedit;
        }
 

ancak burada tüm dize parametreleri

ve yani, her düğme için aşağıdaki gibi bir olay yazmak gerekecektir

  if(id==CHARTEVENT_OBJECT_CLICK
         && StringFind(sparam,CWin1.STR2.RowType3.Button3,0)>=0
         && StringFind(sparam,"STR19",0)>0
         && StringFind(sparam,".Button",0)>0)
        {
         Generator();
        }

düğme + için

filanca dizeden değeri çıkar, tamsayıya dönüştür, bir ekle ve geri koy.

ve ontik durumda

tam o sırada

string'ten değer çıkarma falan filan orada tamsayıya dönüştürme vs. vs.

genel olarak, bir yapı gibi bir şey olsaydı, böylece depolanan nesnelerin türünü ayarlayabilirdiniz ve bir dizeye değer aktarımı modülü sınıf içinde uygulanabilirdi.

Örneğin bir artı hücresinin izlenmesinin bir olaya kod eklenerek yapılabileceğini doğru anladım.

  if(id==CHARTEVENT_OBJECT_CLICK
         && StringFind(sparam,"CWin1.STR2.RowType3.Button3",0)>=0)
        {
         Generator();
        }

 
ve ayrıca simge durumuna küçült düğmesinin çalışıp çalışmayacağını merak ediyorum.