Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2014, 18:16   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию Открытие файлов MS Worl в Delphi

Необходимо открыть файл Word в приложении для предпросмотра, для этого использую код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
Var z: OleVariant;
    i: Integer;
Begin
  OleContainer1.CreateObject('Word.Application',False);
  OleContainer1.CreateObjectFromFile(ExtractFilePath(Application.ExeName)+'123.doc',false);
  OleContainer1.DoVerb(ovShow);
  z:= 2;
    for i:=1 to OleContainer1.OleObject.CommandBars.Count do
      if OleContainer1.OleObject.CommandBars.Item[i].Visible then
         OleContainer1.OleObject.CommandBars.Item[i].Visible:=False;
  OleContainer1.OleObject.Protect(z);
end;
НО!
1. При открытии файла видны все панельки, линейки и т.д. Как их скрыть? Цикл который должен их скрывать ничего не делает...
2. Если открывать файл с расширением *.docx то ворд начинает выбивать ошибки а потом открывает документ...
3. Последнее, почему следующая строчка не хочет убивать ворд из процессов?
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 OleContainer1.DestroyObject;
end;
Если кто в курсе как исправить эти ошибки подскажите пожалуйста.
Вложения
Тип файла: rar Мой пример.rar (22.2 Кб, 9 просмотров)
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 03.12.2014, 19:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нескромный вопрос: Просмотр обязательно нужен в окне программы? Когда у меня была такая задача (просмотр конструкторских спецификаций) я просто подключался к ворду через COM сервер микрософта, открывал и сразу ставил пароль на редактирование (ну или открывал readonly).
Т.е. не вижу смысла использовать OleContainer
Цитата:
почему следующая строчка не хочет убивать ворд из процессов?
Потому что она закрывает не процесс ворда, а интерфейс к нему. Процесс придется закрывать отдельно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.12.2014, 21:28   #3
Iron Monk
Форумчанин
 
Аватар для Iron Monk
 
Регистрация: 05.10.2007
Сообщений: 478
По умолчанию

Код:
uses ComObj;

var
WordApp: OleVariant;

procedure TForm1.Button1Click(Sender: TObject);
begin
   WordApp:= CreateOleObject('Word.Application');
   WordApp.documents.Open('c:\Word.docx');
   WordApp.ActiveWindow.View.FullScreen:= true;
   Form1.RecreateWnd;
end;
end.
Iron Monk вне форума Ответить с цитированием
Старый 03.12.2014, 23:18   #4
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нескромный вопрос: Просмотр обязательно нужен в окне программы?
Суть именно этого пункта программы: в программе хранятся документы, список которых отображается в лист боксе, при нажатии на определенный пункт в списке, открывается предпросмотр данного файла, файлов не менее 200 шт.. и каждый раз что бы посмотреть подходит ли человеку этот документ или нет открывать ворд как то не очень удобно...
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 04.12.2014, 08:06   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А-а-а понял. Тогда предложу использовать WordView. Это спецпрограмма разработанная именно для предпросмотра в виде Active X (короче компонента).
Юзал ее когда-то, неплохая весчь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2014, 19:28   #6
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Только что опробовал... кстати, называется OfficeViewer отличная штука, все офисовские документы можно смотреть и даже редактировать с программы... единственный минус это то что она платная
Спасибо ребята за помощь!
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файлов из Delphi Demien Общие вопросы Delphi 16 28.07.2011 01:06
Открытие и сохранение файлов в Delphi darth Mark Помощь студентам 8 10.05.2010 13:10