Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 51

 
Barbarian:

А другие классы пробовал? Они тоже не работают?

кое что смотрел, но не всё. я по мере надобности (программу пишу) пробую. иногда ставлю затычки (там где не работает), до лучших времён.

Посмотрел класс Canvas, так вот там в методах класса используются функции из MQL5. Скорее всего из-за этого появляется проблема. К примеру метод?

использует функцию TextSetFont из MQL5, которая в MQL4 наверное еще не реализована. Хотя в описании помощи уже есть. Наверное забыли ее реализовать.

Кстати разработчики в плане подсветки синтаксиса в редакторе постарались, молодцы. Очень помогает отличить методы класса от функций языка.

я это в курсе. там уже всё работало билдов 5-6 назад, включая TextSetFont() например вот этот код вполне работал:

    Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

просто позже отключили // надеюсь временно :)

когда оно работало - работало по спецификации.

 
MetaDriver:
кое что смотрел, но не всё. я по мере надобности (программу пишу) пробую. иногда ставлю затычки (там где не работает), до лучших времён.

я это в курсе. там уже всё работало билдов 5-6 назад, включая TextSetFont() например вот этот код вполне работал:

просто позже отключили // надеюсь временно :)

когда оно работало - работало по спецификации.

Тогда очень странно. Смысл отключать, если с самого начала включали для расширения функционала. Вообще действительно, было бы хорошо получать обновляемый билд со списком внесенных изменений и устраненных ошибок. Тогда меньше ползаний по исследованию нового МТ4 было бы.

Кстати у тебя ошибка. Оператор new не возвращает указатель на выделенную память как в С++. Сделай так:

    CCanvas Label;// = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

или так:

    CCanvas* Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();
    
    delete Label;

и все заработает. На эту тему прочти https://www.mql5.com/ru/docs/basis/types/object_pointers. Я тоже поначалу споткнулся забыв С++.

 
artmedia70:


В настройках во вкладке Community ник и пароль мои вписаны. В навигаторе Редактора выбираю нужный мне файл, из контекстного меню выбираю MQL5 Storage --> Добавить, и имя файла в навигаторе отмечается синим "+". Вроде как добавлено. Даже те файлы, которые ранее были добавлены, но после были изменены, отмечаются знаком "!" в красном кружке. Вроде как есть различия. Но вот в самом хранилище я не нахожу добавленных файлов:

Что не так?


Да оно (хранилище) работает, не факт что на 100 процентов (может не разобрался еще относительно сохранения версий), но работает.

Просто нажмите на многоточие ... - у меня это начальной папки в которой лежат 2 папки (проект и персональное).

 
ALXIMIKS:


Да оно (хранилище) работает, не факт что на 100 процентов (может не разобрался еще относительно сохранения версий), но работает.

Просто нажмите на многоточие ... - у меня это начальной папки в которой лежат 2 папки (проект и персональное).

Конечно же нажимал. Переход на предыдущий уровень.
 
artmedia70:
Конечно же нажимал. Переход на предыдущий уровень.


у вас в добавленные файлы светятся зеленым кругом с галочкой?

надо сперва добавить через MQL Storeg ==> добаить, а потом еще нажать на файле или папке фиксировать через ПКМ ==> фиксировать.

 
ALXIMIKS:


у вас в добавленные файлы светятся зеленым кругом с галочкой?

надо сперва добавить через MQL Storeg ==> добаить, а потом еще нажать на файле или папке фиксировать через ПКМ ==> фиксировать.

Спасибо, попробую. Не делал так.
 
ALXIMIKS:


у вас в добавленные файлы светятся зеленым кругом с галочкой?

надо сперва добавить через MQL Storeg ==> добаить, а потом еще нажать на файле или папке фиксировать через ПКМ ==> фиксировать.

Точно, вы правы. Помогло ;)
 
Barbarian:

Кстати разработчики в плане подсветки синтаксиса в редакторе постарались, молодцы.

Ага, мне цветовое решение очень нравится. Такое же в студию хочу :-)
 
Barbarian:

Тогда очень странно. Смысл отключать, если с самого начала включали для расширения функционала.

Смысл есть если код чартов подвергается радикальной реформации. А это наверняка так (поскольку должно запуститься много нового функционала).


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

Это да. В идеале. Реально это довольно ресурсоёмко. Собрать все изменения в один список... в условиях когда над разными модулями работают разные люди..

Кстати у тебя ошибка. Оператор new не возвращает указатель на выделенную память как в С++. Сделай так:

Нет, ошибки там нет, указатель объявлен выше по коду (я прислал только фрагмент). Спасибо за попытку помочь.
 
MetaDriver:
Смысл есть если код чартов подвергается радикальной реформации. А это наверняка так (поскольку должно запуститься много нового функционала).

Это да. В идеале. Реально это довольно ресурсоёмко. Собрать все изменения в один список... в условиях когда над разными модулями работают разные люди..

Нет, ошибки там нет, указатель объявлен выше по коду (я прислал только фрагмент). Спасибо за попытку помочь.

То что указатель объявлен выше по коду понятно, хотя не совсем :) в общем я твой код запустил с моими исправлениями, оба моих варианта работают. Я кстати так и не понял, чем разработчики руководствовались, при изменении работы оператора new, в отличие от С++. Не понимаю, чем лучше указатель на хендл, по отношению к указателю на адрес в памяти.
Причина обращения: