Теперь в обработчике события формы OnCreate напишите следующий код:
Code: |
procedure TForm1.FormCreate(Sender: TObject); var RS : TResourceStream; begin RS := TResourceStream.Create(HInstance, 'EXEEXPORT', 'MYEXE'); try LoadStringGrid(StringGrid1,RS); finally RS.Free; end; end; |
Теперь постройте ваш exe-файл. Перейдем к следующему вопросу.
2. Помещение exe-файла в ресурсы вашей программы.
Скопируйте только что созданный exe-файл на диск C: (можно на любом другом, это для примера) и назовите его Exe.exe. Там же создайте файл 123.rc. Откройте его в блокноте и напишите туда следующее: Data Export C:\Exe.exe. Теперь запустите программу brcc32.exe из каталога Delphi\Bin, передав ей в качестве параметра полный путь к файлу 123.rc. В нашем случае: Delphi\Bin\brcc32.exe C:\123.rc. После этого вы получите скомпилированный ресурс 123.res. Скопируйте его в директорию проекта вашей программы.
Теперь откройте в Делфи проект с вашей программой и откройте окно с кодом. После слова implementation напишите:
Code: |
{Грузим ресурс} {$R 123.res} |
Все, exe-файл теперь будет в ресурсах вашей программы.
3. Извлечение exe-файла из вашей программы.
Ну, с этим проще всего, вот процедура для извлечения файла из ресурсов:
Code: |
procedure ExportExeFromRes(ResName: string; S: string); var ResHandle: THandle; MemHandle: THandle; MemStream: TMemoryStream; ResPtr: PByte; ResSize: Longint; begin ResHandle := FindResource(hInstance, PChar(ResName), 'Export'); MemHandle := LoadResource(hInstance, ResHandle); ResPtr := LockResource(MemHandle); MemStream := TMemoryStream.Create; ResSize := SizeOfResource(hInstance, ResHandle); MemStream.SetSize(ResSize); MemStream.Write(ResPtr^, ResSize); FreeResource(MemHandle); MemStream.Seek(0, 0); //Сохраняем в файл MemStream.SaveToFile(S); MemStream.Free; end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!