Обсуждение статьи "MQL5 для "чайников": Как проектировать и конструировать классы объектов" - страница 2

 

только что ради полной уверенности обновил терминал до такова который можно скачать

обновил библиотеку что уж совсем

запустил терминал открыл файл и вот 

очень понравилось группирование кнопочек =)))

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

Не могли бы вы выложить все необходимые файлы для данного приложения 1 архивом и с соблюдение структуры чтобы была одна папка MQL5.

я проверил все файлы нормально открываются и имеется читаемое содержимое.

 
CoreWinTT:

Не могли бы вы выложить все необходимые файлы для данного приложения 1 архивом и с соблюдение структуры чтобы была одна папка MQL5.

я проверил все файлы нормально открываются и имеется читаемое содержимое.

отправил Вам в личку.
 

Спасибо.

Теперь всё заработало, нормально компилируется, может проблема была в битом файле который неправильно либо закачан на сервер, либо у меня возможно возникла ошибка при скачивании, но я не заметил.

в целом очень неудобно скачивать по отдельности количество файлов больше 5, было бы здорова сделать архив или целую установочную программу.

буду дальше разбираться и попытаться как нить это куда нить привернуть, о результатах буду сообщать.

в целом очень понравилось функционирование кнопочки крестик

но кнопочка свернуть огорчила .......

не работает, а по идее как понял должна сворачивать ниже следующие за ней строки??

 

в целом достаточно познавательная статья. только много ссылок на "википедию".

а так получается профессиональный конструктор для такой менюшки, на которой все кликается и добавляется, в общем работает.

ещё было бы очень здорова какова нить простецкого мануала по обращению к ячейкам сего чуда.

и предположим чтобы советник при событии он тик считывал значения из ячеек

а эти ячейки на процессе онинит заполнялись входными параметрами

или самому такую штуку надо писать???

а это служит так визуальным конструктором?


 

Спасибо за ценные замечания. Я уже озадачился и постараюсь исправить большинство из них.

 

типа сформировать массив структур

которая будет доступна всей программе

и которая будем хранить данные в таком формате

и чтобы можно было обращаться к этим значениям

как Заголовок[1].2столбец

хотябы с типом данных строка

я как вижу тут уже есть что то похожее

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

на двумерный массив

и ругаеться если сделать чтото типа

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


наверно геттер с сеттером поделить инкапсуляцию не могут.

 

У каждой ячейки есть своё уникальное имя. Его можно увидеть наведя курсор мышки на объект. В файле ClassMasterWindowsEXE.mqh показано как обращаться к ячейкам.

//+------------------------------------------------------------------+
//| Метод перехвата и обработки событий OnChartEvent()               |
//+------------------------------------------------------------------+
void CMasterWindowsEXE::OnEvent(const int id,
                                const long &lparam,
                                const double &dparam,
                                const string &sparam)
  {
   if(on_event) // обработка событий разрешена
     {
      //--- нажатие кнопки СТАРТ в главном окне
      if(id==CHARTEVENT_OBJECT_CLICK
         && StringFind(sparam,"CWin1",0)>=0
         && StringFind(sparam,"STR19",0)>0
         && StringFind(sparam,".Button",0)>0)
        {
         Generator();
        }
      //--- редактирование переменных в редакторе EDIT STR18
      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("Имя файла не должно содержать точку!","Ошибка в имени файла",MB_OK);
           }
         else nameFile=textedit;
        }

 

но тут все строковые парамеры получаются

и то есть для каждой кнопки нужно будет писать событие типа

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

для кнопочки +

извлечь значение из строки такой то преобразовать в интегер добавить единичку и положить обратно.

и в событии онтик 

уже просто тогда 

извлечь значение из строки такой там преобразовать в интегер итд и тп

в целом если бы была такая штука как структура, чтобы можно было задавать типа хранимых объектов, а модуль переноса значения в строку уже реализовать внутри класса

я правильно понял что отслеживание например ячейки плюсик можно с помошью вставки кода в собитие онэвент

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

 
а также ещё интересует кнопочка свернуть заработает?
Причина обращения: