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

Вниз

C: Windows Шаблоны Normal.dot   Найти похожие ветки 

 
GanibalLector ©   (2004-11-27 23:01) [0]

Создаю документ Word программно т.е. через закладки.Так вот,в ХР все работает чудесно,а на одном из Win98 получается такая картина.Предположим  был открыт некий файл Word-а,я из своей программы формирую документ(ы) ...потом печатаю(хотя не обязательно)...и закрываю!!!причем без сохранения!!! Так вот,при попытке закрыть получаю такое сообщение от Word-a :
Данный файл используется другим приложением или пользователем. C:\Windows\Шаблоны\Normal.dot

З.Ы. Если Word не был запущен до формирования из моей программы документов,то сообщения НЕ возникает и все прекрасно закрывается.
З.З.Ы. Работаю через OLE


 
GanibalLector ©   (2004-11-27 23:04) [1]

И еще...Normal.dot я вообще не трогаю!


 
ssk ©   (2004-11-27 23:12) [2]

>в ХР все работает чудесно,а на одном из Win98 получается такая картина.

может на этом одном из Win98 офис кривой? или установлен криво?


 
GanibalLector ©   (2004-11-27 23:23) [3]

2 ssk ©   (27.11.04 23:12) [2]
Нет.Сам ставил на 6 компов...все везде одинаково.


 
ssk ©   (2004-11-27 23:26) [4]

у меня сейчас Win98 и Офис2000
кусок кода дашь попробовать?
может этот глюк и у меня будет?

а дома могу попробовать на WinXP + Офис ХР SP3

если хочешь, конечно :-)


 
GanibalLector ©   (2004-11-27 23:43) [5]

Сабж на работе...в понедельник только смогу дать.
В кратце: в потоке через OLE создаю.остальное меняю по мелочи(шрифт,фон и пр.)


 
ssk ©   (2004-11-27 23:50) [6]

>GanibalLector

есть просьба. лишнее только повыкидываешь, ладно? и на мыло сможешь кинуть?


 
GanibalLector ©   (2004-11-27 23:55) [7]

>есть просьба. лишнее только повыкидываешь, ладно?
Это само сабой...на кой тебе 40 форм и база на 5 м?
Хорошо,вышлю на мыло и сюда тоже положу(в эту ветку)


 
GuAV ©   (2004-11-30 00:04) [8]

ну ?


 
GanibalLector ©   (2004-11-30 00:08) [9]

>ну ?
да забыл,млин...
Наверное завтра


 
SergP ©   (2004-11-30 05:03) [10]


>  GanibalLector ©   (27.11.04 23:01)


На макровирусы не проверял комп?


 
GanibalLector ©   (2004-11-30 17:20) [11]

В корень диска D необходимо положить файл OPL.doc состоящий из 1 страницы(или измените имя файла в исходнике).
В нем (в этом файле) создайте 2 закладки по имени zk1 и zk2.
Теперь сабж :

unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 StdCtrls;
type
 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
type
datacash=record
tz:      string[7];
dog:     string[14];
//...тут много всего
         end;

var
 Form1: TForm1;
 TOPLRecord:array of datacash;

implementation
uses ComObj,ActiveX;
{$R *.DFM}

function potok(Param: Pointer): DWord; stdcall;
var WordApp :Variant;
Doc1,Doc2,BookmarkName:OleVariant;
i:integer;R:OleVariant;
begin
CoInitialize(nil);
WordApp := CreateOleObject("Word.Application");
try
WordApp.Documents.add;
WordApp.visible:=false;
Doc1:=WordApp.ActiveDocument;
for i:=0 to length(TOPLRecord)-1 do  begin
       WordApp.Documents.Open("d:\OPL.doc");
       Doc2:=WordApp.ActiveDocument;

       BookmarkName:="zk1";
       if Doc2.Bookmarks.Exists(BookmarkName) then
               begin
                 R := Doc2.Bookmarks.Item(BookmarkName).Range;
                 R.InsertAfter(TOPLRecord[i].tz);
                 R.Font.Size:=10.5;
                 R.Font.Name:="Bookman Old Style";
                 R.Font.Bold:=0;
                 R.Font.Italic:=1;
               end;

       BookmarkName:="zk2";
               if Doc2.Bookmarks.Exists(BookmarkName) then
               begin
                 R := Doc2.Bookmarks.Item(BookmarkName).Range;
                 R.InsertAfter(TOPLRecord[i].dog);
                 R.Font.Size:=10.5;
                 R.Font.Name:="Bookman Old Style";
                 R.Font.Bold:=0;
                 R.Font.Italic:=1;
               end;
       //и т.д.наполняю закладками

       Doc2.Select;
       WordApp.Selection.Copy;
       WordApp.Selection.Collapse($00000000); //wdCollapseEnd
       Doc1.activate;
       WordApp.Selection.paste;
       if i<>length(TOPLRecord)-1 then WordApp.Selection.InsertBreak;

       WordApp.DisplayAlerts := 0;
       Doc2.close($0);
                                       end;
WordApp.Selection.HomeKey($00000006,EmptyParam);
WordApp.ActiveWindow.ActivePane.View.Zoom.Percentage := 85;
WordApp.visible:=true;
except
WordApp.Quit;
end;
CoUninitialize;
Result:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ThreadID:DWord;
i:integer;
begin
i:=random(10);if i=0 then i:=5;
setlength(TOPLRecord,i);
for i:=0 to i-1 do begin
TOPLRecord[i].tz:=inttostr(random(2000));
TOPLRecord[i].dog:=inttostr(random(20000));
                  end;
CreateThread(nil,0,@potok,nil,0,ThreadID);
end;

end.


 
GuAV ©   (2004-11-30 18:56) [12]

Win98 se + Office XP. Ошибки нет.


 
GanibalLector ©   (2004-11-30 19:24) [13]

2 GuAV ©   (30.11.04 18:56) [12]
У меня тоже на 6 компах нет...только один подводит.
Дык,а ШО предлагаете делать???Винду переставлять али как???


 
GuAV ©   (2004-11-30 20:14) [14]

GanibalLector ©   (30.11.04 19:24) [13]
Винду переставлять али как???


Ну.. а если стравнить Normal.dot и OPL.doc с другой машины... может там злостный макрос на завершение, хочет писать в normal.dot



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

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

Наверх




Память: 0.5 MB
Время: 0.029 c
1-1101900116
ANDREI
2004-12-01 14:21
2004.12.12
sos


1-1101501257
alo
2004-11-26 23:34
2004.12.12
преобразование Variant в TGUID и наоборот


1-1101835736
kaktus
2004-11-30 20:28
2004.12.12
Динамическая обраьотка событий.


3-1100598126
Дмитрий_Д
2004-11-16 12:42
2004.12.12
SQL / Напомните комманду пожалуйста!


14-1100853530
Sir John
2004-11-19 11:38
2004.12.12
Microsoft засудит пользователей Linux