Ошибки, баги, вопросы - страница 3523

 
Aleksey Vyazmikin #:

Чего то Вы путаете - Вы начали с того, что ожидаете выбор папок, и я Вам написал, что это не предусмотрено разработчиками.

Поэтому давайте ка вменяемость включайте

Вы входите в число разработчиков? Как вы можете отвечать за них, что предусмотренно разработчиками, а что нет? Так что включайте ка вменяемость и не лезьте туда, где вашей компетентности явно недостаточно.

Aleksey Vyazmikin #:

и не агрессируйте на тех, кто Вам помогает разобраться в заблуждениях.

Какой забавный человек, помогает он разобраться в "заблуждениях". Мы прямо сейчас находимся на 3523 странице обсуждения багов и ошибок благодоря тем, кто сообщает об ошибках, а не благодаря тем, кто уверяет, что всё работает согласно документации (документация тоже постоянно правится, кстати, и не является чем-то фундаментальным, на чем держится вся Вселенная).

 
Andrey Dik #:
Вы входите в число разработчиков? Как вы можете отвечать за них, что предусмотренно разработчиками, а что нет? Так что включайте ка вменяемость и не лезьте туда, где вашей компетентности явно недостаточно.

Вы находитесь на форуме, публичном месте. Поэтому будьте готовы, что на Ваши сообщения будут отвечать пользователи, сочувствующие Вашей проблеме.

Проблема с непониманием документации весьма распространена - тут нет ничего зазорного. Не понимаю, почему отрицаете очевидное - невнимательное прочтение документации с Вашей стороны.

Andrey Dik #:
а не благодаря тем, кто уверяет, что всё работает согласно документации

Вы по прежнему отрицаете, что всё работает согласно документации?

Если Вас не устраивает функционал, то вправе предлагать расширение и это будет восприниматься адекватно сообществом, а далее предложение найдёт поддержку или нет. Если найдёт, то есть шанс, что разработчики обратят внимание и добавят функционал.

Будьте вежливы, не стремитесь на ровном месте создавать конфликтные ситуации.

 
Aleksey Vyazmikin #:

Вы находитесь на форуме, публичном месте. Поэтому будьте готовы, что на Ваши сообщения будут отвечать пользователи, сочувствующие Вашей проблеме.

Проблема с непониманием документации весьма распространена - тут нет ничего зазорного. Не понимаю, почему отрицаете очевидное - невнимательное прочтение документации с Вашей стороны.

Вы по прежнему отрицаете, что всё работает согласно документации?

Если Вас не устраивает функционал, то вправе предлагать расширение и это будет восприниматься адекватно сообществом, а далее предложение найдёт поддержку или нет. Если найдёт, то есть шанс, что разработчики обратят внимание и добавят функционал.

Будьте вежливы, не стремитесь на ровном месте создавать конфликтные ситуации.

Капец, очень мягко говоря... Это такой изощрённый вид троллинга что ли?

Функция FileSelectDialog - недавно появившийся аналог соответствующих программных уже давно существующих функций языка MQL5 для ручного выбора файлов/папок.

Обратите пристальное внимание на входные параметры функции, один из них - массив типа string, что весьма недвусмысленно намекает, что можно получить список файлов/папок. Если бы для папок разработчики предусматривали иное поведение, чем для файлов, то сделали бы отдельную функцию. Так что у меня не предложение о расширении функционала, а об ошибке.


Уважаемый @Slava, проясните, пожалуйста, вопрос о невозможности выбрать несколько папок функцией FileSelectDialog, по которому разгорелся спор:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

Andrey Dik, 2024.05.24 09:26

FileSelectDialog () не позволяет выбирать несколько папок, или я делаю что-то не так?

void OnStart ()
{
  string filenames [];

  Print (FileSelectDialog ("Выбор папок агентов",
                           NULL,
                           NULL,
                           FSD_SELECT_FOLDER | FSD_ALLOW_MULTISELECT | FSD_FILE_MUST_EXIST | FSD_COMMON_FOLDER,
                           filenames,
                           NULL));
  ArrayPrint (filenames);
}

Код выше вызывает такое окно:

Несолько папок невозможно выбрать, ни с зажатым Ctrl, ни с Shift ни по Ctrl+A, можно выбрать только одну папку. А требуется выбор сразу нескольких папок.

Вывод в принт ожидаемый:

1
"Test CNT mod 1.09\Agent-127.0.0.1-3003"


 

Добрый день

Тестер стратегий

Команда типа

Print(ObjectsDeleteAll(0,0,OBJ_TREND));

Возвращает количество удаленных объектов, но на самом деле объекты не удаляются с графика и не пропадают из списка объектов.


Работает только в ручном режиме

void DeleteMyObject(ENUM_OBJECT_PROPERTY_INTEGER type)
  {
   for(int i=ObjectsTotal(0,0)-1;i>=0;i--)
     {
      string nameObj=ObjectName(0,i,0);
      if(ObjectGetInteger(0,nameObj,OBJPROP_TYPE)==type)
        {
         ObjectDelete(0,nameObj);
        }
     }
  }

И вызов

DeleteMyObject((ENUM_OBJECT_PROPERTY_INTEGER)OBJ_TREND);
 
Alexey Klenov #:

Добрый день

Тестер стратегий

Команда типа

Возвращает количество удаленных объектов, но на самом деле объекты не удаляются с графика и не пропадают из списка объектов.

объекты "пропадут" только после вызова ChartRedraw() и (опционально, от билда/нагрузки/прочего)завершения текущей функции OnXXX (OnTick,OnChartEvent - откуда вызвано). 

Образно: ObjectsDeleteAll() просто напихивает во внутреннюю очередь команды удаления объектов,  ChartRedraw() гте-то внутри ставит флажок "выполнить очередь" а при возможности и исполнит. По завершению вашей функции, как только управление дойдёт до чарта - при наличии флага "redraw" будет выполнена очередь команд, то есть физически будут удалены объёкты с чарта и внутренних баз. В конкретике реализации может быть несколько иначе, но принцип именно такой.

 
Maxim Kuznetsov #:

объекты "пропадут" только после вызова ChartRedraw() и (опционально, от билда/нагрузки/прочего)завершения текущей функции OnXXX (OnTick,OnChartEvent - откуда вызвано). 

Образно: ObjectsDeleteAll() просто напихивает во внутреннюю очередь команды удаления объектов,  ChartRedraw() гте-то внутри ставит флажок "выполнить очередь" а при возможности и исполнит. По завершению вашей функции, как только управление дойдёт до чарта - при наличии флага "redraw" будет выполнена очередь команд, то есть физически будут удалены объёкты с чарта и внутренних баз. В конкретике реализации может быть несколько иначе, но принцип именно такой.

ChartRedraw(0);

Это я сразу проверил - результат не изменился

Тестер в режиме визуализации. По OHLС,  скорости пробовал разные. Останавливал на паузу.

Смущает то что по справке функция должна вернуть количество удаленных объектов и она эту часть выполняет.

 

В учебнике на странице

https://www.mql5.com/ru/book/common/files/files_find

показана функция:

bool DirList(const string filter, string &result[], bool common = false)
{
   string found[1];
   long handle = FileFindFirst(filter, found[0]);
   if(handle == INVALID_HANDLE) return false;
   do
   {
      if(ArrayCopy(result, found, ArraySize(result)) != 1) break;
   }
   while(FileFindNext(handle, found[0]));
   FileFindClose(handle);
   
   return true;
}

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

Учебник по MQL5: Общеупотребительные функции / Работа с файлами / Поиск файлов и папок
Учебник по MQL5: Общеупотребительные функции / Работа с файлами / Поиск файлов и папок
  • www.mql5.com
MQL5 позволяет осуществлять поиск файлов и папок в пределах "песочниц" терминала, агентов тестирования и общей для всех терминалов...
 
Andrey Dik #:
Капец, очень мягко говоря... Это такой изощрённый вид троллинга что ли?

Вы ждёте от людей негатив, отсюда и восприятия искажённое, никакого троллинга тут нет. Есть размеренный и адекватный ответ.

Andrey Dik #:
Если бы для папок разработчики предусматривали иное поведение, чем для файлов, то сделали бы отдельную функцию.

Слабый аргумент.

 
Aleksey Vyazmikin #:

1. Вы ждёте от людей негатив, отсюда и восприятия искажённое, никакого троллинга тут нет. Есть размеренный и адекватный ответ.

2. Слабый аргумент.

1. Негатив исходит от Вас. Перечитайте снова сообщения начиная с моего.

2. Мне индифферентно, что для вас слабый аргумент, а что сильный - я обращался к разработчикам.

 
Andrey Dik #:

1. Негатив исходит от Вас. Перечитайте снова сообщения начиная с моего.

2. Мне индифферентно, что для вас слабый аргумент, а что сильный - я обращался к разработчикам.

Где же от меня негатив? Напротив, старался помочь разобраться с инструкцией. Видимо, такое отношение к людям.