Форум: "Основная";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c