2015-10-01 2 views
0

Я работаю с файлами MS Word, использую TWordApplication. Мне нужно показать сообщение, когда документ был изменен пользователем, но когда документ ReadOnly, сообщение не должно отображаться.TWordApplication handle change ReadOnly состояние

У меня проблема при открытии документа readonly, после чего пользователь может выбрать «Просмотр» - отредактировать документ и внести некоторые изменения. В этом случае мне нужно показать сообщение, но свойство ReadOnly документа не изменилось.

Как я могу обрабатывать действие, когда пользователь разрешает редактировать документ?

Я понятия не имею, просьба предложить мне.

var 
    LWordApp: TWordApplication; 
    LWordDoc: _Document; 
    LProtectionType: TOleEnum; 
begin 
    LWordApp:= TWordApplication.Create(nil); 
    LWordApp.OnQuit := DocumentClose; 
    LWordApp.Connect; 
    ... 
    LWordDoc:= LWordApp.Documents.Open(АFileName, // FileName 
            EmptyParam, // ConfirmConversion 
            EmptyParam, // ReadOnly 
            EmptyParam, // AddToRecentFiles 
            EmptyParam, // PasswordDocument 
            EmptyParam, // PasswordTemplate 
            EmptyParam, // Revert 
            EmptyParam, // WritePasswordDocument 
            EmptyParam, // WritePasswordTemplate 
            EmptyParam, // Format 
            EmptyParam, 
            EmptyParam 
            ); 
    LProtectionType := LWordDoc.ProtectionType; 
    if AProtectionPassword <> '' then 
    begin 
    if LProtectionType <> wdNoProtection then 
     Doc.Unprotect(AProtectionPassword); 
    end; 
    LWordApp.Visible := True; 
    LWordDoc.Close(tmpSaveIT, EmptyParam, EmptyParam); 
    LWordApp.Disconnect; 
    LWordApp.Quit; 
end; 

procedure DocumentClose(Sender: TObject); 
begin 
    ShowMessage("Hello"); 
end; 
+0

Боюсь, я не нахожу ваш q совершенно ясным. Когда ** точно ** вы хотите, чтобы ваше сообщение показывалось? F.I. предположим, что пользователь начинает печатать, а затем закрывает документ без сохранения. Когда вы будете показывать сообщение и сколько раз, каждый раз, когда они нажимают клавишу или что? – MartynA

+0

Действительно ли документ доступен только для чтения, не имеет значения? Вы хотите показать сообщение, если документ изменился, независимо. – Dsm

ответ

0

ReadOnly предназначен для указания того, что вы откроете документ так же хорошо, только для чтения. Это не показатель текущего документа.

+0

Спасибо, но как я могу его решить? – Huilo