Выпущена бета-версия MetaTrader 4 Build 582 с обновленным языком MQL4 и Маркетом приложений - страница 7

 
pro_:

Воспроизвел падение терминала при изменении названия вертикальной линии. Вот скриншот.


Терминал опять упал.


Спасибо за обращение, разбираемся .
 
Маленькое видео, там и шаги видны и проблема дублирования объектов. Качество видео не самое лучшее, но все что нужно увидеть можно.
Файлы:
 
pro_:
Маленькое видео, там и шаги видны и проблема дублирования объектов. Качество видео не самое лучшее, но все что нужно увидеть можно.

Спасибо, этот момент воспроизвели
 
Справедливости ради должен заметить что воспроизвести все тоже самое на другом бета-терминале мне не удалось.

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

А началось все банально, с попытки испытать чужой индикатор отрисовки .... (пауза) .... горизонтальной сетки !!! Кто в теме тот понял :).

Стоит разработчикам недоделать одну вещь как голова болит уже из-за 2-х, 3-х, других проблем.

 
pro_:
Маленькое видео, там и шаги видны и проблема дублирования объектов. Качество видео не самое лучшее, но все что нужно увидеть можно.
ОС Windows 7 х64, билд 574, все делал как на видео, объект удаляется с первого раза...
 
Barbarian:
ОС Windows 7 х64, билд 574, все делал как на видео, объект удаляется с первого раза...

Как я уже писал, у меня самого ни на другом бета-терминале, ни в новом окне графика, проблема не воспроизводится. Но на графиках которые существовали до первого падения терминала проблема повторяется снова и снова. Другим пользователям воспроизвести эту проблему будет затруднительно, ну если только не довести терминал до зависания от чего-либо еще.
После первого падения терминала вчера, пришлось удалить и снова применить все (!) индикаторы-информеры выводящие инфо на экран в виде набора OBJ_LABELs, так как они перестали изменяться. Даже компиляция индикаторов не помогла, только удаление и применение к графикам снова.

В некоторых окнах проблема (дублирование прямоугольников например) перестает воспроизводиться после удаления одного какого-либо индикатора. В других окнах повторяется даже после удаления ВСЕХ индикаторов. В некоторых окнах дублируются трендлинии, а прямоугольники нет. В других и те и другие.


 

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

build 574, ОС Win8.1 64Bit

перестал показыватся текст

сверху видно что он теперь находится за background

который был создан графическими объектами OBJ_LABEL

раньше голубой текст было видно поверх background

2
 

struct ar_struct[];

ArrayResize

как использовать динамические массивы для массива структур?

 
pro_:

Артем, теперь ты наверное чувствуешь почему некоторые пользователи возмущаются по поводу вертикальной шкалы и сетки :)
Просто это их "одежда в шкафчике" и им тоже "драный тапок" не нравится.

Не... сравнение некорректно. У сетки такое поведение было изначально. А вот восстановление удалённого графика работало верно, а теперь - нет. Это ошибка, которую обещали исправить.

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

 
int myGetAllSymbols(string &Symbols[], bool Selected,double maxspread)
{  
   string SymbolsFileName;  
   int SymbolsNumber,Offset; 
   
   if(Selected) SymbolsFileName = "symbols.sel";
   else         SymbolsFileName = "symbols.raw";
   
   int hFile = FileOpenHistory(SymbolsFileName, FILE_BIN|FILE_READ);
   
   if(hFile < 0) return(-1);
   
   if(Selected) { SymbolsNumber = (FileSize(hFile) - 4) / 128; Offset = 116;  }
   else         { SymbolsNumber = FileSize(hFile) / 1936;      Offset = 1924; }
   
   //ArrayResize(Symbols, SymbolsNumber);
   
   if(Selected) FileSeek(hFile, 4, SEEK_SET);
   int j=0;   
   for(int i = 0; i < SymbolsNumber; i++){ 
         
      string smb = FileReadString(hFile, 12);
      
      if(smb!=""){
         if(MarketInfo(smb,MODE_ASK)-MarketInfo(smb,MODE_BID)<maxspread*p(smb) || maxspread==0){
            ArrayResize(Symbols, j+1);
            Symbols[j]=smb;
            j++;
         }
      }
      
      FileSeek(hFile, Offset, SEEK_CUR);   
   }
   
   FileClose(hFile);
   
   return(SymbolsNumber);
}  
как теперь передать динамический массив строк? не работает вышеуказанная функция, в мт4 работала, в отладчике данные получаю, но массив размер не изменяет и размер остается 0м у массива строк Symbols
и все функции, которые передавали в массив строк данные теперь не работают в новой версии языка. т.е. любая функция которая объявлена как void test(string &t[]); не работает, размер массива не меняется. Это баг или нужно теперь как то иначе работать со строковыми динамическими массивами?
Причина обращения: