Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
1

Как открыть шаблон Word-a из папки в корневой папки программы :)

29.04.2012, 23:19. Показов 3372. Ответов 6
Метки нет (Все метки)

Таккая проблема у меня реализован вывод данных программы в ворд по Bookmarks сейчас подгрузга шаблона сделана через Opendialog, проблема в том что когда шаблон открывается и в него заносятся данные шаблон можно случайно пересохранить а необходимо как то сделать так чтобы либо помимо Opendialog-а был Sevedialog который позволял открыть шаблон но сохранял под другим именем либо просто как я подумал, прикрутить Sevedialog а шаблоны кинуть в к примеру "Папка проги\шаблоны" и вот вопрос как их оттуда подгрузить так как прога может лежать де угодно и надо всегда подгружать из папки которая в дерриктории экзешника

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
procedure TForm1.Button2Click(Sender: TObject);
var
  wdApp, wdDocs, wdDoc, wdBms : Variant;
  Sd : TSaveDialog;
  Res : Integer;
begin
  Sd := SaveDialog1;
  if Sd.InitialDir = '' then
    Sd.InitialDir := ExtractFilePath( ParamStr(0) );
  if not Sd.Execute then Exit;
  if FileExists(Sd.FileName) then begin
    Res := MessageDlg(
      'Файл с заданным именем уже существует. Перезаписать?'
      ,mtConfirmation, [mbYes, mbNo], 0
    );
    if Res = mrNo then Exit;
  end;
 
 
  wdApp.Visible := True;
  wdDocs := wdApp.Documents;
  <Как я думаю де то тут надо подгрузить из папки шаблон>
  wdBms := wdDoc.Bookmarks;
  SetBmText(wdBms, 'adres', Form5.Memo1.Text);
  ..........................
  SetBmText(wdBms, 'cepi3', Form5.Memo8.Text);
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2012, 23:19
Ответы с готовыми решениями:

Как в Delfi 7 при нажатии Batton открыть диалог выбора папки в подкаталоге программы и сохранить путь папки в Edit
Как в Delfi 7 при нажатии Batton открыть диалог выбора папки в подкаталоге программы и сохранить...

Как переместить страницы сайта из корневой папки
Здравствуйте, уважаемые продвинутые пользователи. Мне очень нужна помощь знающих людей. Дело в том,...

Как подключить dll из корневой папки проекта?
Есть библиотека System.IO.Compression.FileSystem.dll в корневой папке, пишу в проекте А VS...

Как сохранять и получать доступ к файлам (закаченным пользователем) за пределами корневой папки сайта на серве
Добрый день! Строю сайт, где пользователи смогут хранить свои файлы , для этого мне нужно создать...

6
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31785 / 20706 / 8044
Регистрация: 22.10.2011
Сообщений: 35,899
Записей в блоге: 7
29.04.2012, 23:59 2
Цитата Сообщение от flouwjke Посмотреть сообщение
так как прога может лежать де угодно и надо всегда подгружать из папки которая в дерриктории экзешника
Подгружай:
ExtractFilePath(Application.ExeName) + 'templates\' это та самая папка
0
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
30.04.2012, 00:38  [ТС] 3
Нашел интересную вещь оказывается можно не открывать шаблон А прямо на его основе создать новый документ

Код
wdApp.Documents.Add('C:\Папка проги\шаблоны\Шаблон.dot');
Код
procedure TForm1.Button2Click(Sender: TObject);
var
  wdApp, wdDocs, wdDoc, wdBms : Variant;
  Od : TOpenDialog;
begin
  Od := OpenDialog1;

  if Od.InitialDir = '' then
    Od.InitialDir := ExtractFilePath( Application.ExeName )
  ;
  Od.Title := 'Выберите шаблон, на основе которого будет создан новый документ';
  if not Od.Execute then Exit;
  if not FileExists(Od.FileName) then begin
    MessageDlg(
      'Файл с заданным именем не найден. Действие отменено.'
      ,mtWarning, [mbOK], 0
    );
    Exit;
  end;
  try
    wdApp := CreateOleObject('Word.Application');
  except
    ShowMessage('Не удалось запустить MS Word. Действие отменено.');
    Exit;
  end;


  wdApp.Visible := True;
  wdDocs := wdApp.Documents;
  wdApp.Documents.Add(FileName:=Od.FileName);
  wdBms := wdDoc.Bookmarks;
  SetBmText(wdBms, 'adres', Form5.Memo1.Text);
  ............................
  SetBmText(wdBms, 'cepi', Form5.Memo8.Text);
end;
Как то так, ток компилица норм но при выборе шаблона выдает ошибку Method 'Add' not supported by automation objekt
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31785 / 20706 / 8044
Регистрация: 22.10.2011
Сообщений: 35,899
Записей в блоге: 7
30.04.2012, 00:52 4
Цитата Сообщение от flouwjke Посмотреть сообщение
при выборе шаблона выдает ошибку Method 'Add' not supported by automation objekt
Проблема - в том, что у метода Add нет параметра Filename.
Delphi
1
  wdApp.Documents.Add(Template:=Od.FileName);
откроет шаблон...
1
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
30.04.2012, 01:12  [ТС] 5
Delphi
1
2
3
4
5
6
  wdApp.Visible := True;
  wdDocs := wdApp.Documents;
  wdApp.Documents.Add(Template:=Od.FileName);
  wdBms := wdDoc.Bookmarks;
  SetBmText(wdBms, 'adres', Form5.Memo1.Text);
end;
Invalid variant operation выдает
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
31785 / 20706 / 8044
Регистрация: 22.10.2011
Сообщений: 35,899
Записей в блоге: 7
30.04.2012, 01:41 6
Лучший ответ Сообщение было отмечено volvo как решение

Решение

А, ну правильно, ты ж пытаешься взять то свойство, которого не существует. Вернее, оно существует, но не там. Bookmarks относится к активному документу, а не к Documents вообще:
Delphi
1
wdBms := wdApp.ActiveDocument.Bookmarks;
(Дельфи сейчас недоступна, поэтому проверить, будет ли работать дальше - не могу)
1
0 / 0 / 1
Регистрация: 11.04.2012
Сообщений: 91
30.04.2012, 09:23  [ТС] 7
Работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.04.2012, 09:23
Помогаю со студенческими работами здесь

загрузка Image с корневой папки
Помогите пожалуйста, как можно загрузить картинку с папки которая находится в папке с проектом? Не...

Куки не находятся при обращении из корневой папки
У меня куки какогото хрена не правильно работают!Есть папка reg где и авторизация задает...

Свой корневой каталог для папки (сайт в сайте)
На сайте несколько каталогов, в каждом из каталогов свой сайт. Можно ли сделать что бы для...

Переместить все подпапки каждой папки в корневой каталог
Есть вот такая структура. Bigfolder/ smalFolder/ Folder1 ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru