Проблема с свойством Vbproject

  • Автор темы zubr
  • Дата начала
Статус
Закрыто для дальнейших ответов.
Z

zubr

#1
Столкнулся с непонятным для меня явлением. Вот код:
Код:
uses
SysUtils, comObj, Windows;

var
W:variant;
i:Integer;
put_sh, put_pr, s:string;
hw:cardinal;

begin
TProcedure(InitProc);
hw:=FindWindow('OpusApp', nil);
If hw<>0 then
begin
MessageBox(0, 'Çàêðîéòå âñå äîêóìåíòû Word è îïÿòü çàïóñòèòå ïðîãðàììó', 'Makrtest', MB_OK+MB_ICONINFORMATION);
exit;
end;
try
W:=CreateOleObject('Word.Application');
try
 W.visible:=False;
 W.Documents.Add();
 put_sh:=W.NormalTemplate.Path;
 put_pr:=ExtractFilePath(ParamStr(0));
 W.ActiveDocument.Close;
 W.Documents.open(put_sh+'\Normal.dot');
 For i:=1 to W.Documents.Item(put_sh+'\Normal.dot').VBProject.VBComponents.Count do
 begin
 s:=W.Documents.Item(put_sh+'\Normal.dot').VBProject.VBComponents.Item(i).Name;
 If s='MyMakros' then
 begin
  W.Documents.Item(put_sh+'\Normal.dot').VBProject.VBComponents.Remove(W.Documents.Item(put_sh+'\Normal.dot').VBProject.VBComponents.Item(i));
  W.Documents.Item(put_sh+'\Normal.dot').Close;
  MessageBox(0, 'Ìàêðîñ óäàëåí', 'Makrtest', MB_OK+MB_ICONINFORMATION);
  exit;
 end;
 end;
 W.Documents.Item(put_sh+'\Normal.dot').VBProject.VBComponents.Import(put_pr+'bas.bas');
 W.Documents.Item(put_sh+'\Normal.dot').Close;
finally
 W.Quit;
end;
MessageBox(0, 'Ìàêðîñ äîáàâëåí', 'Makrtest', MB_OK+MB_ICONINFORMATION);
except
MessageBox(0, 'Îøèáêà', 'Makrtest', MB_OK+MB_ICONERROR);
end;
end.
В WinXP все работает нормально, в Win98 при закрытии программы выскакивает ошибка после выполнения W.Quit, причем Word закрывается. Причем эта проблема, как я заметил происходит после обращения к свойству VBProject. Может надо с VBProject по другому работать, но как?
 
Статус
Закрыто для дальнейших ответов.