Показать сообщение отдельно
  #1  
Старый 01.03.2018, 11:25
M1ndAction M1ndAction вне форума
Прохожий
 
Регистрация: 05.09.2010
Сообщения: 13
Репутация: 10
По умолчанию Чтение Word-файла (*.dot) из ресурсов программы

Есть набор Word-шаблонов (файлы *.dot) и маленькая утилита, которая создаёт на базе них новые Word-файлы. Всё работает, но задача в том, чтобы программа была одним файлом.
Я вижу решение в том, чтобы поместить файлы шаблонов в ресурсы программы. Но не знаю, как считать потом эти шаблоны из ресурсов. Подскажите, как это сделать. Возможно, сможете предложить альтернативное решение.

Сейчас код работы с шаблонами выглядит следующим образом:

Код:
procedure TfmMain.CreateDocument0;
var
  TempleateFileName: string;
  WordApp, Document: OleVariant;

  procedure FillBookmark(BookmarkName, bText: string);
  var
    Range: OleVariant;
  begin
    if Document.Bookmarks.Exists(BookmarkName) then
    begin
      Range := Document.Bookmarks.Item(BookmarkName).Range;
      Range.Text := bText;
    end;
  end;
begin
  TempleateFileName := ExtractFilePath(Application.ExeName)+'Templates\0.dot';
  try
    WordApp := GetActiveOleObject('Word.Application');
  except
    try
      WordApp := CreateOleObject('Word.Application');
    except
      on E: Exception do
      begin
        MessageBox(Self.Handle, PChar(E.Message), PChar(fmMain.Caption), MB_OK+MB_ICONERROR);
        Exit;
      end;
    end;
  end;

  try
    Document := WordApp.Documents.Add(TempleateFileName, False);

    FillBookmark('ObjectType', edt0ObjectType.Text);
    ...

    WordApp.Visible := True;
    WordApp.Activate;
  finally
    WordApp := Unassigned;
  end;
end;
Ответить с цитированием