файлы типа .ico - страница 2

 
Artyom Trishkin:

После компиляции программа и будет "содержать в себе все необходимые рисунки и данные", и можно будет не таскать их за ней. Но для компиляции, файлы должны быть в указанных папках.


Теперь понял.
О как интересно, исходник поглощает файл.
Не где в документации вроде не уловил этот момент.
Буду изучать ресурсы.

 
Roman:


Теперь понял.
О как интересно, исходник поглощает ресурс.
Не где в документации вроде не уловил этот момент.
Буду изучать ресурсы.

Не исходник. Исполняемый файл после компиляции содержит в себе указанные ресурсы.

В документации всё есть:

Включение ресурсов в исполняемые файлы при компиляции mql5-программ

Для работы mql5-программы может потребоваться множество разнообразных загружаемых ресурсов в виде файлов изображений и звуков. Для того чтобы исключить необходимость переноса всех этих файлов при передаче исполняемой программы на MQL5, следует использовать директиву компилятора #resource:

#resource путь_к_файлу_ресурса

Команда #resource указывает компилятору, что ресурс по указанному пути путь_к_файлу_ресурса нужно включить в исполняемый файл EX5. Таким образом, все необходимые картинки и звуки можно поместить непосредственно в EX5-файл и для запуска программы в другом терминале не потребуется передавать все используемые в ней отдельные файлы. Любой EX5-файл может содержать ресурсы, и любая EX5-программа может использовать ресурсы из другой EX5-программы.

Файлы в формате BMP и WAV перед включением в исполняемый EX5 файл автоматически сжимаются. Это означает, что использование ресурсов не только позволяет создавать полноценные программы на MQL5, но и уменьшает общий размер требуемых терминалу файлов при использовании графики и звука по сравнению с обычным способом написания mql5-программ.

Размер файла ресурса не может быть больше 128 Mb.

Документация по MQL5: Программы MQL5 / Ресурсы
Документация по MQL5: Программы MQL5 / Ресурсы
  • www.mql5.com
В данном примере показано как проигрывать звуки из файлов Ok.wav и timeoit.wav, входящих в стандартную поставку терминала. Эти файлы находятся в папке означает папку, из которой запущен клиентский терминал MetaTrader 5.  Программным путем из mql5-программы каталог терминала можно узнать следующим образом: Расположение каталога данных терминала...
 
Artyom Trishkin:

Не исходник. Исполняемый файл после компиляции содержит в себе указанные ресурсы.

Это я понял, имел ввиду саму технологию поглощения, в виде шутки.
По сути исходный файл с помощью компилятора и волшебных заклинаний, поглощает файл ресурса при компиляции ))
И исполняемый файл уже как бы содержит эти файлы, отобедал компиляшка ))
Хотя что я туплю, ведь это схожесть с упаковкой файлов ))

 
Artyom Trishkin:


Что то не получается подгрузить иконку из ресурса  в #property 

#resource "\\Images\\test.ico"

#property icon "::Images\\test.ico"

Или как то иначе нужно это делать?

#property icon требует только константу
А

 
Roman:

Что то не получается подгрузить иконку из ресурса  в #property 

Или как то иначе нужно это делать?

#property icon требует только константу
А

Иконку не нужно держать в ресурсах. После компиляции она и так содержится в ex4, ex5

 
Artyom Trishkin:

Иконку не нужно держать в ресурсах. После компиляции она и так содержится в ex4, ex5

И действительно, всё гораздо проще.
Благодарю за пояснение.

 
Roman:

Что то не получается подгрузить иконку из ресурса  в #property 

Или как то иначе нужно это делать?

#property icon требует только константу
А

#property icon - это не использование ресурса. Таким образом указывается пиктограмма, отображающаяся в закладке "О программе" в момент присоединения программы к графику. Больше ничего с таким изображением сделать нельзя.

А вот при объявлении через директиву #resource изображение (или любой другой тип данных) можно использовать в программе многократно.

 
Ihor Herasko:

#property icon - это не использование ресурса.
Таким образом указывается пиктограмма, отображающаяся в закладке "О программе" в момент присоединения программы к графику.
Больше ничего с таким изображением сделать нельзя.

А вот при объявлении через директиву #resource изображение (или любой другой тип данных) можно использовать в программе многократно.

Да, уже разобрался, благодарю за пояснения.
Не знал, что файл иконки при компиляции, пакуется в исполняемый файл.

 
Почему у меня возникла путаница с этим.
В локальный проект я помещал свою  dll,
и после компиляции проекта, dll не пакуется к исполняемому файлу,
и её всё равно нужно тянуть за программой.
По этому это ввело меня в заблуждение, что упаковщика нет совсем.
 
Artyom Trishkin:

После компиляции программа и будет "содержать в себе все необходимые рисунки и данные", и можно будет не таскать их за ней. Но для компиляции, файлы должны быть в указанных папках.

делал один раз картинки с помощью ресурса,

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

по сравнению с теми, что рисовались средствами графических объектов.

после этого ресурсы не использовал.

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