Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1003

 
Aleksey Vyazmikin:

Ответил Вам там же, и интереса в описанном моего нет - не обоснованно.

Если нет интереса, то зачем после объяснения возможной причины спрашивали о причинах? Не я же спрашивал... Когда мне интересно (имею интерес), то я спрашиваю.

Или вы хотите, чтобы для удовлетворения вашего интереса, кто-то иной полез туда разбираться чтобы показать что-либо? Ну хорошо. Заглянул туда. Там CCanvas используется. Думаю, что при создании объекта-канваса проверяется его существование (и при первом обращении его нету - вот код отсутствия объекта-канваса и вписывается в _LastError). Не стал разыскивать по коду - своих дел полно.

 
Artyom Trishkin:

Если нет интереса, то зачем после объяснения возможной причины спрашивали о причинах? Не я же спрашивал... Когда мне интересно (имею интерес), то я спрашиваю.

Или вы хотите, чтобы для удовлетворения вашего интереса, кто-то иной полез туда разбираться чтобы показать что-либо? Ну хорошо. Заглянул туда. Там CCanvas используется. Думаю, что при создании объекта-канваса проверяется его существование (и при первом обращении его нету - вот код отсутствия объекта-канваса и вписывается в _LastError). Не стал разыскивать по коду - своих дел полно.

Спасибо Вам за труд! Теперь мы знаем, что хорошо бы сбрасывать там эту ошибку после создания объекта.

 
Vitaly Muzichenko:

Попробуйте добавить строку, может поможет

попробую

 
Aleksey Vyazmikin:

Спасибо Вам за труд! Теперь мы знаем, что хорошо бы сбрасывать там эту ошибку после создания объекта.

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

Тестируем CGraphic - вопросы и предложения

Artyom Trishkin, 2019.02.17 09:41

Нужно чётко осознавать, что ошибкой является не наличие в _LastError кода, отличного от нуля, а возврат функцией результата, указывающего на ошибочное исполнение этой функции. А в _LastError вписывается код, который вам точно укажет на ту ошибку, возникновение которой привело к ошибочному исполнению функции. Поэтому очень сомнительно закладываться в своей логике на описание кода ошибки, хранящейся в сервисной переменной, вместо прямого использования кода возврата функции. Если функция вернула -1 или false или 0 (для каждой функции описан в справке её код ошибочного выполнения), так вот - только анализ результата, возвращаемого функцией должен вами отрабатываться, а не код в _LastError, который не указывает на наличие ошибки, а используется для указания на причину возврата функцией некоего результата.

Функция поиска объекта возвращает значение меньше нуля в случае, если объекта с заданным именем не существует. Ошибка ли это? Нет. Это штатный ответ функции, на основании которого вы и принимаете решение о создании объекта с заданным именем. При этом код, содержащийся в _LastError прямо говорит о том, что "Объекта с запрошенным именем не существует" - можно его создавать.

В общем, устал я вам объяснять. Кто хочет - тот поймёт.


 
Vitaly Muzichenko:

Попробуйте добавить строку, может поможет

Попробовал, не помогло, думаю с компом проблемы, на другом компе попробую

 
Denis Nikolaev:

Попробовал, не помогло, думаю с компом проблемы, на другом компе попробую

На другом компьюторе такая же ситуация ( , куда копать дальше?

код, если чем-то поможет

int OnInit(){

   MQLSetInteger(MQL_CODEPAGE,CP_ACP);
   string File_Name;
   int file_handle;
   string line;
   File_Name="format.txt";
   file_handle=FileOpen(File_Name,FILE_READ|FILE_TXT);
   if(file_handle!=INVALID_HANDLE){
      while(!FileIsEnding(file_handle)){
         line=FileReadString(file_handle);
         Alert(line);
      }
   }else
      Alert("Не удалось открыть файл format.txt");
   FileClose(file_handle);
   return(INIT_SUCCEEDED);
}

 
Denis Nikolaev:

На другом компьюторе такая же ситуация ( , куда копать дальше?

Тогда нужен код чтения файла

 
Artyom Trishkin:
В общем, устал я вам объяснять. Кто хочет - тот поймёт.

Он не поймёт. Ему говорят сбрасывать ПЕРЕД... он понимает как ПОСЛЕ...


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

Вопросы от начинающих MQL5 MT5 MetaTrader 5

Aleksey Vyazmikin, 2019.02.17 09:33

Спасибо Вам за труд! Теперь мы знаем, что хорошо бы сбрасывать там эту ошибку после создания объекта.


 
Denis Nikolaev:

На другом компьюторе такая же ситуация ( , куда копать дальше?

код, если чем-то поможет

int OnInit(){

   MQLSetInteger(MQL_CODEPAGE,CP_ACP);
   string File_Name;
   int file_handle;
   string line;
   File_Name="format.txt";
   file_handle=FileOpen(File_Name,FILE_READ|FILE_TXT);
   if(file_handle!=INVALID_HANDLE){
      while(!FileIsEnding(file_handle)){
         line=FileReadString(file_handle);
         Alert(line);
      }
   }else
      Alert("Не удалось открыть файл format.txt");
   FileClose(file_handle);
   return(INIT_SUCCEEDED);

}

содержимое format.txt любое, при отсутствии файла "Не удалось открыть файл "format.txt" выводиться правильно



Файлы:
alert.png  83 kb
 
Alexey Viktorov:

Он не поймёт. Ему говорят сбрасывать ПЕРЕД... он понимает как ПОСЛЕ...



Вы вообще внимательный, или только проснулись???

Причина обращения: