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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2011, 15:00   #21
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Какой вариант заработал?
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 06:55   #22
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

Решила больше не заморачиваться и оставить вариант с Word := GetActiveOleObject( 'Word.Application' );
a_n_n_a вне форума Ответить с цитированием
Старый 07.07.2011, 08:35   #23
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

А если открыто несколько документов, эта проверка срабатывает только для первого, а на остальные открытые док-ты не раегирует...
я так поняла это отвечает за кол-во документов?
Код:
for i := 1 to Word.Documents.Count do
Но что-то у меня всегда Word.Documents.Count=1...

Последний раз редактировалось a_n_n_a; 07.07.2011 в 08:38.
a_n_n_a вне форума Ответить с цитированием
Старый 07.07.2011, 08:52   #24
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Без Word := GetActiveOleObject('Word.Applicatio n'); необойтись

Измененный код закрывает все документы
Код:
//Функция для проверки открыты ли документ если да то закрываем
function ViewDoc(Doc: string): boolean;
var
  i: Integer;
  Word: OleVariant;
begin
result:= false;
  try
    Word := GetActiveOleObject('Word.Application');
      for i := 1 to Word.Documents.Count do
     //Проверяем какой документ открыт
       if pos(ansilowerCase(Doc), ansilowerCase(Word.Documents.Item(i).Name))<>0 then
       begin
      Word.Documents.Item(i).close;
        result:= true;
      end;
  except
  end;
end;


procedure TForm1.Button2Click(Sender: TObject);
var
Word: OleVariant;
k: string;
Doc: string;
begin
//Ваш код
Word:= CreateOleObject('Word.Application') ;
Word.Visible:= True;
k:=ExtractFilePath(Paramstr(0));
Word.Documents.Open( Format('%sШаблоны\A kt_2', [k]) );
PutToWrd('СтранаИзг', Form4.dbEdit71.Text);
PutToWrd('ГодВып', Form4.dbEdit72.Text);
PutToWrd('цвет', Form4.dbEdit75.Text);
PutToWrd('Кузов', Form4.dbEdit73.Text); 
// Название Вашего документа
Doc := format('%sЗадания и договоры\№%s%s_%s %s_Акт осмотра',[k, DBEdit2.Text,
 DBEdit143.Text, DBEdit69.Text, DBEdit70.Text]);
 //Проверяем открыт ли документ.
 ViewDoc(doc);
Word.ActiveDocument.SaveAs(Doc);
end;
У себя проверил работает, а то я так чисто логически писал коды

Последний раз редактировалось Aliens_wolfs; 07.07.2011 в 09:21.
Aliens_wolfs вне форума Ответить с цитированием
Старый 07.07.2011, 09:35   #25
a_n_n_a
Форумчанин
 
Регистрация: 06.03.2009
Сообщений: 157
По умолчанию

Спасибо, Aliens_wolfs) что-то манудрила, налипила и заработало)))
Надеюсь, больше ничего не вылезет)
a_n_n_a вне форума Ответить с цитированием
Старый 07.07.2011, 12:08   #26
Aliens_wolfs
Форумчанин
 
Регистрация: 16.12.2009
Сообщений: 902
По умолчанию

Понятно.

Цитата:
Измененный код закрывает все документы
Если этот код, пробуйте
Aliens_wolfs вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
офис 2003 или офис 2010 -открыт документ valerij Microsoft Office Excel 3 14.05.2011 11:02
нужно узнать, открыт ли документ под Excel или OO Calc mjr27 Microsoft Office Excel 1 05.04.2011 00:26
ccылка на документ word voldemen HTML и CSS 3 29.04.2010 14:05
Открыть документ WORD Maxx Microsoft Office Excel 0 15.02.2010 17:37
Не открывается документ Word komar73 Microsoft Office Word 3 30.05.2009 22:17