Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

The server threw an exception   Найти похожие ветки 

 
Lotus   (2005-08-15 01:25) [0]

Использую в своей программе OLE-автоматизацию Ворда. Когда программно открываю doc-файл, то все путем. Когда этим же кодом пытаюсь открыть dot, то возникает сабжевая ошибка.
Как лечить?


 
kblc ©   (2005-08-15 06:51) [1]

Кофем и пивом ;)
 .dot как я понимаю шаблон... так? ... у меня всё нищтяк открываеться и никаких ошибок. Поподробнее опиши проблему, приведи свой код.


 
Lotus   (2005-08-15 11:06) [2]

да, .dot - шаблон

Попробуйте у себя этот код, плиз:

     try
       WD := GetActiveOleObject("Word.Application");
     except
       WD := CreateOleObject("Word.Application");
     end;
     try
       WD.Visible := False;
       WD.Documents.Open(LoadFName);
       WD.ActiveDocument.SaveAs(RTF_FName, $00000006);
       WD.ActiveDocument.Close;
       WD.Quit;
       WD := Null;
     except
       WD.Quit;
       WD := Null;
     end;


 
kblc ©   (2005-08-15 11:14) [3]

try
 WD := GetActiveOleObject("Word.Application");
except
 WD := CreateOleObject("Word.Application");
end;

try
 WD.Visible := False;
 WD.Documents.Open(LoadFName);
 WD.ActiveDocument.SaveAs(RTF_FName, $00000006);
 Sleep(3000);
 WD.ActiveDocument.Close;
 WD.Quit;
 WD := Null;
except
 WD.Quit;
 WD := Null;
end;


 
Lotus   (2005-08-15 16:13) [4]

А зачем Sleep?


 
kblc ©   (2005-08-15 16:50) [5]

А затем что один поток ворда пытаеться сохранить документ, и ты, не дождавшись конца сохранения пытаешься его закрыть!


 
Lotus   (2005-08-15 18:55) [6]

а почему именно 3 сек?
почему не 5 или 10?
зависит ли это от процессора?


 
kblc ©   (2005-08-16 07:44) [7]

я примерно написал что 3. По идее в ворде есть ф-ия которая должна возврщать занятость ворда, ели ты узнаешь как она называеться - сообщи и мне. А пока пользуйся именно так. Если файл небольшой то и секунды хватит


 
Lotus   (2005-08-16 09:17) [8]

Интересует, почему нужно это делать с dot-ом. С doc же все путем, без всяких слипов.


 
kblc ©   (2005-08-18 07:10) [9]

Потомучто .. размер .dot всегда больше .doc. Фиг знает что туда нафигачивают, но это всегда занимает бльшое время. вот.


 
Lotus   (2005-08-18 08:30) [10]

а как оно на самом деле - наверное, знают только в мелкософте, да?


 
kblc ©   (2005-08-18 09:17) [11]

Тебе нужно где-то найти описание интерфейса с именем Word.Application. Тогда сразу всё поймёшь ;)


 
Lotus   (2005-08-18 17:16) [12]

thanks!


 
Джо ©   (2005-08-21 22:28) [13]


>      try
>        WD := GetActiveOleObject("Word.Application");
>      except
>        WD := CreateOleObject("Word.Application");
>      end;

Это что за ужас?


 
Lotus   (2005-08-22 07:11) [14]

не понимаешь - не ужасайся



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
1-1157210797
Ragazor
2006-09-02 19:26
2006.10.15
Как передать из dll хранящиеся там frame-ы?


15-1158737267
Ega23
2006-09-20 11:27
2006.10.15
С Днём рождения! 20 сентября


15-1158872352
Eraser
2006-09-22 00:59
2006.10.15
Просьба протестировать сайт


11-1135002276
Юрий Ж.
2005-12-19 17:24
2006.10.15
[?]KOL & Delphi 2006


2-1159275606
Alex_C
2006-09-26 17:00
2006.10.15
Как избавится от мелькания Memo при перерисовке?