запаковка файлов в exe

Вот тут описана большая часть:

НО! Всё сделано так что QUMO чисто для себя понял, но откуда берутся типы MemoryStream и ему подобные? Искал в System.IO, System.Reflection но там нету, в программе вообще как будто не подключали никакие модули, и нету строчки {$reference System.Drawing.dll} без которой не будет работать System.Drawing(в программе использован Bitmap), в общем объясните всё по порядку, пожалуйста.

Эти “ресурсы” запаковывались не в exe, а в отдельный файл ресурсов. А на счет того что я “как будто не подключал никакие модули” я их просто не привел в данных отрывках программы так как в этом не было необходимости. :slight_smile:

Если честно еле вспомнил откуда этот вопрос здесь :smiley:

ну понятно что так он отдельным файлом, но при компиляции они ведь попадают в exe все? вот это мне и нужно

Нет, эти ресурсы будут в отдельном файле. И этот файл надо будет таскать вместе с экзешником

{$resource ‘Векторная.jpg’}//эта строка говорит компилятору что эту картинку тоже надо компелировать; //После компеляции картинка будет внутри exe файла; uses GraphABC,System.Drawing; //Чтобы обратится к этой картинке в коде программы потребуется переменная типа Bitmap; //Тип Bitmap есть в модуле System.Drawing; var bm:Bitmap; begin // Cоздаёт картинку из ресурса программы и присваивает её переменной bm; bm:= new bitmap(image.FromStream(GetResourceStream(‘Векторная.jpg’)));//Ползуемся картинкой!!! //GraphWindowGraphics.DrawImage(bm,0,0); //так можно вывести картинку (Bitmap) на экран; //-------------------------------------------------------------------------------------- //В GraphABC Bitmap почти нигде не используется, значит далее создаём переменную (Picture); var p:Picture; //Обычного конструктора по созданию Picture из Bitmap нету, придётся исползовать инструменты у Picture; //Для этого создаём пустую p(Picture) с размерами bm(Bitmap); p:= new Picture(bm.Width,bm.Height); //Помещаем в неё картинку копированную из bm(Bitmap); p.CopyRect(new System.Drawing.Rectangle(0,0,p.Width,p.Height),bm,new System.Drawing.Rectangle(0,0,p.Width,p.Height)); p.Draw;//Ползуемся картинкой!!! end.

Вот так в экзешник можно скомпилировать ресурс)

классс спс только вот GraphABC мне нафиг не сделся, я только с Graphics на OpenGL перешёл)

Ну это просто пример кода и демонстрация что все работает)

 Институт математики, механики и компьютерных наук ЮФУ, 2005–2021
Администрация форума: В.Н. Брагилевский, С.С. Михалкович, А.М. Пеленицын
Yandex.Metrica