Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Можно вставить файл в виде массива, а затем обращаться к этому массиву.
Прикрепил пример
Да, кстати, это работает. Не знал о такой возможности. Спасибо!
Только вот размер mq4 или mqh файла будет в 5 раз больше самого png файла. Но вполне рабочий вариант, т.к. не влияет на размер самого ex4 файла. (он будет таким же как и ex5 файл)
Попросить разработчиков вставить сюда PNG.
Уверен, согласятся.
сомневаюсь, что для MT4 будут реализовывать какие-либо пожелания и просьбы, тем более когда уже объявлено о скором окончании поддержки MT4
С внешними PNG разобрался, подгрузка, масштаб, прозрачность работает. Но...
А вообще реально во внутрь файла скомпилировать PNG?
Штатный функционал ...
#resource "\\Files\\123.png"
string nam_img = "::Files\\123.png"
... выдаёт ошибку компиляции
Я что-то сразу не вник в то, что софт работает с внешним файлом, однако как сделать, чтобы весь конечный продукт был одним файлом?
А то теряется практический смысл такой фичи. В МТ5 не пробовал. В МТ4 ошибка присоединения.
P.S. Предположу, что теоретически возможно написать скрипт, который переделает PNG в код и мы его положим, скажем в MQH и будем уже с ними работать в составе одного контейнера. Но мне такое не по силам написать. Картинки-массивы для меня глухой лес.
Кроме того что предложил Александр (через вставку массива uchar[]) есть еще костыльный способ через псевдо BMP, о чем уже говорил
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Canvas - это круто!
Nikolai Semko, 2023.09.25 17:09
К сожалению в MQL4 нет возможности прикреплять ресурс как массив. Но все остальное работает.можно написать скрипт, который выполняет подобную конвертацию из png в bmp (размер псевдо-изображения такого файла будет по ширине равной размеру самого png файла, а по высоте 1 пиксель).
Но можно обойтись все же другим алгоритмом: PNG c прозрачностью преобразовать в реальный BMP с прозрачностью и прикрепить его через ресурс. Размер ex4 файла будет чуть больше чем размер с png файлом, т.к. в ex4 ресурс bmp файла хранится в упакованном формате. Я проверял - увеличение размера ex4 с bmp будет на 10-30% больше, чем ex4 c тем же изображением в формате png.
Лично я бы предпочел вариант, который предложил Славский. В отдельный mqh файл вынести отдельный uchar массив, который будет содержать сам png файл, а потом вставить его в код через инклуд, чтоб гигантский массив не загромождал код.
Более того плюсом такого способа является то, что не надо помещать никаких графических файлов в MQL4 песочницу, как в случае через ресурсы.
Попросить разработчиков вставить сюда PNG.
Уверен, согласятся.
Добавим в MQL5.
Можно вставить файл в виде массива, а затем обращаться к этому массиву.
Прикрепил пример
абалдеть, и давно эта менюшка "Вставить" в ME есть? :O
век живи - век учись...
Добавим в MQL5.
Маркет показывает, что все продукты дублируют под обе платформы. Скорее всего, не будут пользоваться не кроссплатформенным вариантом, а останутся сидеть на BMP, к сожалению.
На MQL5 и сейчас можно прикрепить любой файл.
При таком прикреплении будет создан статический массив с данными, а не ресурс. Во втором случае, вроде, он доступен из других EX4/5.PNG c прозрачностью преобразовать в реальный BMP с прозрачностью и прикрепить его через ресурс.
Такой вариант в МТ4 не работает, т.к. BMP с альфа-каналом прикрепляется, но не отображается.
Маркет показывает, что все продукты дублируют под обе платформы. Скорее всего, не будут пользоваться не кроссплатформенным вариантом, а останутся сидеть на BMP, к сожалению.
Так вроде PNG уже кроссплатформенный стал. С внешними файлами уже работает. Примеры выше от Николая.
Можно вставить файл в виде массива, а затем обращаться к этому массиву.
Действительно, вставляется. Я прямо удивился.
Осталось попробовать реализовать в Canvas всю приблуду с резиновостью, прозрачностью и всё, - небольшое mq4 чудо готово.
Естественно, такое делается для кроссплатформенности. А то на МТ4 - BMP, а на MT5 - PNG. Не айс. Надо всё PNG.
Осталось попробовать реализовать в Canvas всю приблуду с резиновостью, прозрачностью и всё, - небольшое mq4 чудо готово.
Так уже все готово. Можно взять пример теста из PNG библиотеки. Только строчку с ресурсом
поменять на строчку
#include <PNG\iconspng.mqh>
где в файле iconspng.mqh вставляем массив png_data[]
Только необходимо помнить, что в МТ4 важно из OnChartEvent выводить все затратные вычисления в таймер, иначе будет жутко лагать. Чисто MQL4 херня.
сейчас сброшу вариант нелагающей версии.
сейчас сброшу вариант нелагающей версии.
Да, даже не лагает, если проц находится в режиме "best perfomance".
абалдеть, и давно эта менюшка "Вставить" в ME есть? :O
век живи - век учись...
Среди моих файлов, где я экспериментировал с такой вставкой файлов, нашёлся файл созданный в ноябре 2019г. А заинтересовало это меня ещё раньше. К сожалению я не нашёл тот скрипт где из такого массива сохранялся файл изображения.
Среди моих файлов, где я экспериментировал с такой вставкой файлов, нашёлся файл созданный в ноябре 2019г. А заинтересовало это меня ещё раньше. К сожалению я не нашёл тот скрипт где из такого массива сохранялся файл изображения.