Пример вызова:
Code: |
ExportExeFromRes('Data', путь куда извлекать); |
4. Помещение в ресурсы извлеченного файла содержимого StringGrid'a.
Вот это было для меня самым сложным. Но мне помог один человек с ником Alex-Co, который ко всему прочему является автором отличного модуля AcWorkRes.pas. Этот модуль нам понадобится, его можно скачать тут и почитать про него тут.
Итак, установите этот модуль. Для этого откройте его и нажмите в Делфи Component\Install Component. После этого в появляющихся окнах нажимайте ОК, Compile и возможно Install.
Затем пропишите в разделе uses этот модуль.
Ниже представлен код процедуры, которая сохраняет содержимое StringGrid'a в ресурсы exe-файла:
Code: |
procedure SaveStringGridToFile(StrGrid: TStringGrid; FName: string); var SaveList: TStringList; i, j: integer; Handle: THandle; s: String; begin SaveList := TStringList.Create; try SaveList.Add(IntToStr(StrGrid.RowCount)); SaveList.Add(IntToStr(StrGrid.ColCount)); SaveList.Add(IntToStr(StrGrid.FixedRows)); SaveList.Add(IntToStr(StrGrid.FixedCols));
for j := 0 to StrGrid.RowCount-1 do for i := 0 to StrGrid.ColCount-1 do begin SaveList.Add(StrGrid.Cells[i, j]); end;
notLang:= True; try s:=SaveList.Text; Handle := BeginUpdateResourceW(StringToPWide(FName),false); UpdateResourceW(Handle,'MYEXE','EXEEXPORT',LANG_NEUTRAL,@(s[1]),Length(s)); EndUpdateResourceW(Handle, false); finally notLang:= False; end; finally SaveList.Free; end; end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!