Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > OLE и word (перехват событий)


Автор: PetrovStas 14.4.2005, 23:16
Можно ли из приложения перехватить событие нажатия кнопки "сохранить" в word'е

Автор: Snowy 15.4.2005, 08:41
Теоретически. Да.
Практически нет.
Сохранить можно не только по кнопке "сохранить", но и через меню "сохранить", "сохранить как...", по клавишам Ctrl+S, и при закрытии ворда по подтверждению.
Добавим сюда макросы и экспорт... Все не переловишь.
Да и кнопку перехватить не так-то просто.

Автор: <Spawn> 15.4.2005, 12:52
Можно, если пользоваться ранним связыванием - идешь на вкладку Services и используешь TWordApplication, определив у него событие OnDocumentBeforeSave, например так:

Код

procedure TForm1.WordApplication1DocumentBeforeSave(ASender: TObject;
  const Doc: _Document; var SaveAsUI, Cancel: WordBool);
begin
  ShowMessage('Before Save');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  WordApplication1.Connect;
  WordApplication1.Visible := True;
  WordApplication1.Documents.Add(EmptyParam, EmptyParam, EmptyParam, EmptyParam)
end;


Попробуй сохранить открытый документ и ты увидешь сообщение в своем приложении.

Автор: PetrovStas 18.4.2005, 14:30
<Spawn> большое спасибо, очень помогло.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)