En utilisant la méthode CreateoBoBject, il a des avantages inhérents aux opérations de documents de mots par rapport à l'accès aux méthodes de contrôle fournies par Delphi, la méthode CreateObject est "plus proche" du fonctionnement du core Word car il utilise directement la paire de langues VBA fournie par Office. Programmez les opérations du document Word.
Ce qui suit est l'expérience que j'ai faite sur cette machine, et la configuration du logiciel de machine est la suivante:
Windows XP + Delphi7.0 + Office 2003
Ce programme est très simple. Programme lorsque le programme est fermé dans le répertoire.
unité principale;
interface
// Si vous souhaitez utiliser CreateoMObject pour fonctionner sur le document Word, vous devez utiliser
// inclut la déclaration comobj et la déclaration wordxp dans l'instruction
usages
Windows, messages, systèmes, variantes, classes, graphiques, contrôles, formulaires,
Comobj, wordxp, dialogs, stdctrls;
taper
Tform1 = classe (tform)
Button1: Tbutton;
Edit1: Tedit;
Procédure Button1Click (expéditeur: tobject);
Procédure FormCreate (expéditeur: tobject);
Procédure FormClose (expéditeur: tobject; var action: tcloseAction);
// Procédure Button2Click (expéditeur: tobject);
Privé
{Déclarations privées}
publique
{Déclarations publiques}
fin;
var
FORM1: TFORM1;
// déclare ces deux variables comme variables globales
FWORD: Variante;
FDOC: variante;
Mise en œuvre
{$ R * .dfm}
Procédure tform1.button1Click (expéditeur: tobject);
Commencer
FWORD.Selection.TypeParagraph;
Fword.selection.typeText (texte: = form1.edit1.text);
fin;
Procédure TForm1.FormCreate (Sender: Tobject);
Commencer
// Créez d'abord l'objet et donnez une invite si une exception se produit
essayer
FWORD: = CreateoMObject ('word.application');
// L'exécution du programme Word est-elle visible?
Fword.visible: = false;
sauf
ShowMessage («Créer un objet Word a échoué!»);
Sortie;
fin;
// Créez d'abord une nouvelle page dans le mot ouvert, puis tapez "Hello", + Entrée + "Monde!"
essayer
Fdoc: = fword.documents.add;
Fword.selection.typeText (texte: = 'Hello,');
FWORD.Selection.TypeParagraph;
FWORD.Selection.TypeText (texte: = 'World!');
sauf
sur e: exception faire
ShowMessage (E.Message);
fin;
fin;
// Enregistrez le contenu du fichier dans le répertoire actuel lorsque le programme est fermé et nommé d'après Test.doc
// Clôture du programme de mots en même temps
Procédure tform1.formClose (expéditeur: tobject; var action: tcloseAction);
Commencer
Fdoc.saveas (extractFilePath (application.exename) + 'test.doc');
FWORD.QUIT;
FWORD: = non assisté;
fin;
fin.
De plus, les opérations sur d'autres fichiers de bureau sont relativement similaires, donc je n'entrerai pas dans les détails. Cette méthode peut également effectuer des opérations de documents plus complexes via des références à des macros VBA plus complexes dans les fichiers Word.