Содержание материала

Экспорт StringGrid в исполняемый файл *.EXE
 
Как-то раз мне понадобилось из моей программы извлекать все содержимое StringGrid'a в exe-файл. В данном случае можно конечно писать свой собственный компилятор, но, согласитесь, это лишнее. Гораздо проще заранее написать exe-файл и поместить его в ресурсы нашей программы. А потом извлекать его оттуда, и записывать в его ресурсы содержимое StringGrid'a. Заманчиво звучит, правда? Тогда перейдем к реализации.
 
1. Создание exe-файла, в который поместим в конце содержимое StringGrid'a.
 
Так как данная статья посвящена языку Делфи, то и писать этот exe-файл я рекомендую на Делфи. Запускаем Делфи, создаем новый проект, и на форму кидаем StringGrid. Это обязательный набор, но вы можете добавить все что угодно, все, что вы хотели бы видеть, после того как сделаете экспорт из StringGrid'a в исполняемый файл.
Ниже представлен код процедуры загрузки содержимого из ресурсов в StringGrid:

 

Code:

procedure LoadStringGrid(StrGrid: TStringGrid;FName: TStream);

var

LoadList: TStringList;

i, j, ListCurentLine: integer;

begin

LoadList := TStringList.Create;

try

LoadList.LoadFromStream(FName);

 

If TryStrToInt(LoadList.Strings[0]) then

StrGrid.RowCount := StrToInt(LoadList.Strings[0]);

If TryStrToInt(LoadList.Strings[1]) then

StrGrid.ColCount := StrToInt(LoadList.Strings[1]);

If TryStrToInt(LoadList.Strings[2]) then

StrGrid.FixedRows := StrToInt(LoadList.Strings[2]);

If TryStrToInt(LoadList.Strings[3]) then

StrGrid.FixedCols := StrToInt(LoadList.Strings[3]);

 

ListCurentLine := 4;

for j := 0 to StrGrid.RowCount-1 do

for i := 0 to StrGrid.ColCount-1 do

begin

  StrGrid.Cells[i, j] := LoadList.Strings[ListCurentLine];

  Inc(ListCurentLine);

end;

 

finally

LoadList.Free;

end;

end;

 

Ранние статьи

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить