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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2010, 02:57   #1
Aleks1988
 
Регистрация: 13.12.2009
Сообщений: 6
По умолчанию Delphhi 7 Открытие документа ms Word

вот код
Цитата:
var w: variant;
dir_string;

procedure TForm1.Button2Click(Sender: TObject);
begin
W:=CreateOLEObject('Word.Applicatio n');
w.visible:=true;

GetDir(0,dir_);

if not OpenDialog1.Execute then begin chdir(dir_); exit; end;
chdir(dir_);
W.Documents.Add(OpenDialog1.FileNam e);
все нормально компилируется и запускается потом когда в программе жму на button2 открывается word и вылазит ошибка



подскажите пожалуйста в чем проблема буду признателен за любую информацию
Aleks1988 вне форума Ответить с цитированием
Старый 14.05.2010, 03:18   #2
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

У вас в коде слово "Application" с пробелом написано, не в этом все дело?

И еще - что за процедура "GetDir" ?

Так же не видно, где переменной "dir_" присваивается значение.

И последнее, почему процедура "chdir" выполняется в любом случае, невзирая на условие, какой в этом смысл?
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 14.05.2010 в 03:27.
ex.cluz вне форума Ответить с цитированием
Старый 14.05.2010, 03:41   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
Хорошо

Может, так:

Код:
var 
  w: variant;
  dir_: string;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if not OpenDialog1.Execute then Exit;  
  dir_:=OpenDialog1.FileName;
  W:=CreateOLEObject('Word.Application');
  W.visible:=true;
//GetDir(0,dir_); //Зачем эта процедура нужна? 
//  chdir(dir_); //А это зачем?
  W.Documents.Open(dir_);
end;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 14.05.2010 в 03:46.
ex.cluz вне форума Ответить с цитированием
Старый 14.05.2010, 04:01   #4
Aleks1988
 
Регистрация: 13.12.2009
Сообщений: 6
По умолчанию

Нет дело не в "Application"

что за функция "GetDir" я не знаю, так делаю по примерам из книги там она ни как не описана

насчет chdir аналогично я просто взял пример из книги

я решил пойти более простым путем :
dir:='....';
W.Documents.Open(FileName:=dir_);
в общем спасибо за то, что что подсказали dir значение присвоить.

Я просто думал то что откроется диалоговое окно и я там сам выберу какой файл открыть(собственно как и было обещано в книге которую читаю)
Aleks1988 вне форума Ответить с цитированием
Старый 14.05.2010, 04:04   #5
Aleks1988
 
Регистрация: 13.12.2009
Сообщений: 6
По умолчанию

вылетает та же ошибка
Aleks1988 вне форума Ответить с цитированием
Старый 14.05.2010, 04:08   #6
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

А вам, собственно, что нужно?

Просто открыть Word?

Вот минимальный для этого код с пояснениями:

Код:
var 
  w: variant;

procedure TForm1.Button2Click(Sender: TObject);
begin
  if not OpenDialog1.Execute then Exit;  //тут открывается диалог выбора файла, и если пользователь нажал "Cancel", то выходим
  W:=CreateOLEObject('Word.Application');  //запускается сервер автоматизации
  W.visible:=true;  //делаем Ворд видимым
  W.Documents.Open(OpenDialog1.FileName);  //Открываем документ, выбранный в диалоге
end;
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 14.05.2010, 04:21   #7
Aleks1988
 
Регистрация: 13.12.2009
Сообщений: 6
По умолчанию

да мне нужно просто открыть word и документ в нем
но вот только есть одна проблема, как только где либо я начинаю вызывать
OpenDialog у меня вылетает ошибка когда жму на button2 (компилируется нормально) хотя в uses dialogs написано
и переменную я создал openDialog1 : TOpenDialog;
Aleks1988 вне форума Ответить с цитированием
Старый 14.05.2010, 04:32   #8
Aleks1988
 
Регистрация: 13.12.2009
Сообщений: 6
По умолчанию

спасибо большое разобрался
Aleks1988 вне форума Ответить с цитированием
Старый 14.05.2010, 04:37   #9
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Код целиком можно? А то непонятно (у меня все работает как надо).

Если бы в uses dialogs не было - не компилировался бы код.

А вот это не совсем понятно:
Цитата:
переменную я создал openDialog1 : TOpenDialog;
Эта переменная сама создается, когда на форму соответствующий компонент перетаскиваешь и она является его именем.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 14.05.2010, 07:50   #10
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Это не переменная, а экземпляр класса!
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие документа из приложения Jene4ka Общие вопросы Delphi 2 03.05.2010 15:47
Открытие вордовского документа в java Free239 Общие вопросы по Java, Java SE, Kotlin 6 03.04.2010 12:09
Редактирование MS Word документа Johnson Общие вопросы Delphi 3 21.11.2009 15:20
Как прописать событие на открытие документа? Cadaver Microsoft Office Excel 14 17.04.2009 07:30
открытие документа в чужой программе joker Win Api 2 22.10.2007 16:59