2015-10-01 2 views
0

Je travaille avec des fichiers MS Word utilisent TWordApplication. J'ai besoin de montrer le message quand le document a été changé par l'utilisateur, mais quand le document est ReadOnly alors le message ne devrait pas être montré.TWordApplication gérer modifier ReadOnly état

J'ai un problème lors de l'ouverture du document en lecture seule, puis l'utilisateur peut sélectionner Affichage - Modifier le document et apporté quelques modifications. Dans ce cas j'ai besoin de montrer le message mais la propriété ReadOnly du document n'a pas changé.

Comment puis-je gérer une action lorsque l'utilisateur active l'édition du document?

Je n'ai aucune idée, s'il vous plaît me suggérer.

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

Je crains de ne pas trouver votre q clair du tout. Quand ** exactement ** voulez-vous que votre message soit affiché? Fi. Supposons que l'utilisateur commence à taper, puis ferme le document sans enregistrer. Quand voulez-vous montrer le message, et combien de fois, chaque fois qu'ils appuient sur une touche ou quoi? – MartynA

+0

Sûrement si le document est en lecture seule n'est pas pertinent? Vous voulez afficher le message si le document a changé, malgré tout. – Dsm

Répondre

0

ReadOnly est pour spécifier que vous allez ouvrir le document comme, bien, en lecture seule. Ce n'est pas un indicateur du document en cours.

+0

Merci, mais comment puis-je le résoudre? – Huilo