Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.11.2013, 11:58
oleg_c# oleg_c# вне форума
Прохожий
 
Регистрация: 23.11.2013
Сообщения: 6
Версия Delphi: 2010
Репутация: 10
По умолчанию Проблема с открытием документа word 2003

Проблема с открытием документа word 2003
Здравствуйте.
Приходится разбираться с чужим кодом.
Приложение windows приложение (среда разработки Delphi2010) работает с документами Word 2010, но выкидывает exception в случае, когда установлен word2003 (точнее windows 7 c word2010 работает, а windows XP и word2003 не работает)
Ошибка выбрасывается в методе Оpen , функция полностью приведена ниже
Код:
// Загрузка шаблона MS Word
function OpenSample(var msw: OleVariant; path: string): boolean;
begin
 msw.Documents.Open(path);                 // msw-System.OleVariant здесь получаем исключение
end;
Пожалуйста, подскажите, в чем дело?

Последний раз редактировалось M.A.D.M.A.N., 23.11.2013 в 12:48.
Ответить с цитированием
  #2  
Старый 23.11.2013, 12:05
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

msw пустое?
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 23.11.2013, 12:24
oleg_c# oleg_c# вне форума
Прохожий
 
Регистрация: 23.11.2013
Сообщения: 6
Версия Delphi: 2010
Репутация: 10
По умолчанию

точно не скажу, но
ранее вызвана функция
Код:
 // Открываем Word
  if not OpenWord(msword) then
  begin
    ShowMessage('Ошибка открытия MS Word');
    exit;
  end;
  msword.Application.DisplayAlerts := false; // отключаем предупреждения
документ word уже создан...

Последний раз редактировалось M.A.D.M.A.N., 23.11.2013 в 12:49.
Ответить с цитированием
  #4  
Старый 23.11.2013, 13:58
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от oleg_c#
точно не скажу, но
А отладчик что по этому поводу говорит?
Ответить с цитированием
  #5  
Старый 23.11.2013, 15:27
oleg_c# oleg_c# вне форума
Прохожий
 
Регистрация: 23.11.2013
Сообщения: 6
Версия Delphi: 2010
Репутация: 10
По умолчанию

с отладкой я не разговариваю.. не то что бы принципиально.
просто второй раз открыл делфи код.
пользуюсь ShowMessage.. и открылись новые подробности дела.
файл не открывается, потому что его НЕТУ!!
более ранний метод не копирует шаблон , метод выглядит так CopyFile(PChar(templatepath + cbTemplate.Items[cbTemplate.ItemIndex]),
PChar(frmMain.sdReport.FileName), true)
почему не копирует для связки windows xp и word2003

НЕПОНИМАЮ!?
Ответить с цитированием
  #6  
Старый 23.11.2013, 15:37
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

function OpenSample(var msw: OleVariant; path: string): boolean;
предполагается что у вас до вызова функции был предварительно создан объект Word.
Код:
 WordApp := CreateOleObject('Word.Application');
...
OpenSample(WordApp, 'c:\test.doc');
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 23.11.2013, 15:42
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от oleg_c#
с отладкой я не разговариваю.. не то что бы принципиально.
просто второй раз открыл делфи код.
пользуюсь ShowMessage.. и открылись новые подробности дела.
файл не открывается, потому что его НЕТУ!!
более ранний метод не копирует шаблон , метод выглядит так CopyFile(PChar(templatepath + cbTemplate.Items[cbTemplate.ItemIndex]),
PChar(frmMain.sdReport.FileName), true)
почему не копирует для связки windows xp и word2003

НЕПОНИМАЮ!?
Что говорит по этому поводу GetLastError?

p.s. Если CopyFile не может скопировать файл, она возвращает Ложь (False) и устанавливает в LastError код ошибки (справка в MSDN, справка по-русски).
Узнать какая ошибка случилась можно примерно так:
Код:
  if not CopyFile(.....) then ShowMessage(SysErrorMessage(GetLastError));
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:33.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025