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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2013, 20:29   #1
Aces of Spades
 
Аватар для Aces of Spades
 
Регистрация: 21.03.2013
Сообщений: 7
По умолчанию Delphi и Word

В чем здесь может быть ошибка?
Код:
procedure TForm3.Button1Click(Sender: TObject);
var
  WordApp: Variant;
begin
  WordApp := CreateOleObject('Word.Application'); "ошибку выдает в этой строке"
  WordApp.Documents.Add;

    WordApp.Visible := True;

  WordApp.Documents.Add;
  WordApp.Selection.Font.Size := 12;
  WordApp.Selection.TypeText('Текст');
  WordApp.Selection.Font.Bold := true;
  WordApp.Selection.TypeText(#13#10'new');
  WordApp.ActiveDocument.SaveAs('C:\ex.doc');
  end;
Ошибка:
First chance exception at $7669C41F. Exception class EOleSysError with message 'Недопустимая строка с указанием класса'. Process Project1.exe (2112)

Последний раз редактировалось Stilet; 22.03.2013 в 09:24.
Aces of Spades вне форума Ответить с цитированием
Старый 22.03.2013, 06:29   #2
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Код:
WordApp: OleVariant;
?
phomm вне форума Ответить с цитированием
Старый 22.03.2013, 08:16   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Цитата:
Сообщение от phomm Посмотреть сообщение
Код:
WordApp: OleVariant;
Не обязательно. У меня и просто Variant работает. А у Вас Офис нормальный стоит? Не кривосборка WMI-евская какая нибудь?
FaTaL вне форума Ответить с цитированием
Старый 22.03.2013, 08:32   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Согласен, просто Вариант должен работать. Во-первых - какая версия офиса? Во-вторых - версия винды? В-третьих - модуль ComObj вообще подключен?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 22.03.2013, 09:25   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
'Word.Application'
Значит нет в твоей винде такого класса. Проверь все ли буквы в этом слове написаны в латинице.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.03.2013, 10:57   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Значит нет в твоей винде такого класса. Проверь все ли буквы в этом слове написаны в латинице.
и вообще, установлен ли MS Word в данной винде!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.03.2013, 18:19   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
Сообщение от Aces of Spades Посмотреть сообщение
WordApp := CreateOleObject('Word.Application') ; "ошибку выдает в этой строке"
Попробуй указывать конкретную версию, например Word.Application.12 (путь в реестре HKEY_CLASSES_ROOT\Word.Application\ CurVer) или выяснить программно (права администратора нужны этому коду)
Код:
function verWord: string; //определение версии Word
var
  regData: TRegistry;
begin
  result := '';
  regData := TRegistry.Create;
  regData.RootKey := HKEY_CLASSES_ROOT;
  try
    if regData.OpenKey('\Word.Application\CurVer', False) then
     begin
      result := regData.ReadString('');
      regData.CloseKey;
     end
  finally
    regData.Free;
  end;
end;
eoln вне форума Ответить с цитированием
Старый 23.03.2013, 01:45   #8
Aces of Spades
 
Аватар для Aces of Spades
 
Регистрация: 21.03.2013
Сообщений: 7
По умолчанию

версия моего ворда 2010 и она является официальной приобретена мной вместе с покупкой ноут бука.
Windows 7 у меня с паком 1.
Дэлфи 2010 РАД'овский.
Microsoft office starter 2010 вот так все это называется.

eoln, ваше я попробую в кротчайшие сроки, идея сама не плоха. Я не верю в то что в коде может допускается хоть какая нибудь ошибка, т.к. он был проверен с ног до головы не 1 мной.
Спасибо всем.

И да, на счет модуля, он был добавлен, моя ошибка что не указал этого ранее.

Последний раз редактировалось Stilet; 25.03.2013 в 09:00.
Aces of Spades вне форума Ответить с цитированием
Старый 23.03.2013, 07:21   #9
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
версия моего ворда 2010
Так у него по-моему действительно другой вызов для создания объекта. Совет eoln'а вам в помощь.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 24.03.2013, 10:44   #10
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

Нет. Я писал прогу на ХР под 2003 ворд, и сейчас стоит 2012 и она всё равно работает. Вызов не изменился.
FaTaL вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi+Word V4ND4LLL Общие вопросы Delphi 2 02.02.2010 17:24
Word Delphi xtc_win64 Общие вопросы Delphi 9 31.07.2009 12:48
Delphi + word ToLeG Мультимедиа в Delphi 2 09.07.2009 16:42
delphi и word Doget Помощь студентам 0 03.04.2009 14:07
Delphi и word gool Общие вопросы Delphi 0 07.10.2008 12:21