Vérification orthographique à partir du code Delphi à l'aide de l'automatisation MS Word

01

de 07

Qu'est-ce que l'automatisation (OLE)? Qu'est-ce que Automation Server? Qu'est-ce que Automation Client?

Supposons que vous développez un éditeur HTML comme Kit HTML. Comme pour tout autre éditeur de texte, votre application doit contenir une sorte de système de vérification orthographique. Pourquoi acheter des composants de vérification orthographique ou les écrire à partir de zéro alors que vous pouvez facilement utiliser MS Word?

OLE Automation

une application peut en contrôler une autre

client d'automatisation

serveur d'automatisation

L'automatisation (également appelée OLE Automation) est une fonctionnalité que les programmes utilisent pour exposer leurs objets aux outils de développement, aux langages de macro et à d'autres programmes qui prennent en charge l'automatisation. Par exemple, Microsoft Outlook peut exposer des objets pour l'envoi et la réception de messages électroniques, pour la planification et pour la gestion des contacts et des tâches.

En utilisant Word Automation (serveur), nous pouvons utiliser Delphi (client) pour créer dynamiquement un nouveau document, ajouter du texte à vérifier l'orthographe, puis demander à Word de vérifier l'orthographe. Si nous minimisons Microsoft Word, nos utilisateurs ne le sauront peut-être jamais! Grâce à l'interface OLE de Microsoft Word, nous pouvons faire un détour par Delphi et chercher des moyens de tricher lors du développement de notre version de l'éditeur de bloc-notes :)

instagram viewer

Il n'y a qu'un seul problème;) Les utilisateurs de l'application doivent avoir Word installé. Mais ne vous laissez pas arrêter.

Bien sûr, pour maîtriser pleinement l'utilisation de l'automatisation dans vos applications, vous devez avoir une connaissance pratique détaillée des applications que vous intégrez - dans ce cas, le MS Word.

Pour que vos programmes "Office" fonctionnent, l'utilisateur doit posséder l'application qui agit comme un serveur Automation. Dans notre cas, MS Word doit être installé sur la machine de l'utilisateur.

02

de 07

Connexion à Word: "Hello Word" Early Binding vs Reliure tardive

Il existe plusieurs étapes principales et trois façons principales d'automatiser Word à partir de Delphi.

Delphi> = 5 - Composants du serveur Office XX

TWordApplication

TWordDocument

Delphi 3,4 - Early Binding

Bibliothèques de types

Pour utiliser la bibliothèque de types de Word dans Delphi (version 3 ou 4), sélectionnez Projet | Importez la bibliothèque de types… et choisissez le fichier msword8.olb situé dans le répertoire «Office» de Microsoft Office. Cela va créer le fichier "Word_TLB.pas" qui est la traduction pascal objet de la bibliothèque de types. Comprendre Word_TLB dans la liste des utilisations de toute unité qui accédera aux propriétés ou méthodes Word. Le référencement des méthodes Word à l'aide de la bibliothèque de types est appelé liaison anticipée.

Delphi 2 - Liaison tardive

Reliure tardive

devrait être évité, si possible, car il est beaucoup plus facile et plus rapide d'utiliser les bibliothèques de types - le compilateur aide en détectant les erreurs dans la source. Lorsque vous utilisez une liaison tardive, Word est déclaré être une variable de type Variant. Cela signifie notamment que pour appeler des méthodes et accéder à des propriétés, vous devez savoir ce qu'elles sont.

04

de 07

Le projet de vérification orthographique - TWordApplication, TWordDocument

Le projet Spell au moment du design
Le projet de sorts au moment du design.

Pour construire un projet de vérification orthographique, nous aurons besoin de deux formulaires: l'un utilisé pour modifier le texte et l'autre pour voir les suggestions d'orthographe... mais allons-y depuis le début.

Démarrez Delphi. Créez un nouveau projet avec un formulaire vierge (formulaire1, par défaut). Ce sera le formulaire principal de la vérification orthographique avec le projet MS Word. Ajoute un TMemo (Onglet Standard) et deux TButtons au formulaire. Ajoutez du texte au mémo en remplissant la propriété Lines. Bien sûr, avec quelques erreurs de frappe. Sélectionnez l'onglet Serveurs et ajoutez TWordApplication et TWordDocument au formulaire. Modifiez le nom du composant TWordApplication de WordApplication1 à WordApp, WordDocument1 à WordDoc.

TWordApplication, TWordDocument

La propriété publiée ConnectKind est utilisé pour contrôler si nous nous connectons à une instance Word nouvellement lancée ou à une instance existante qui est déjà en cours d'exécution. Définissez ConnectKind sur ckRunningInstance.

Lorsque nous ouvrons ou créons un fichier dans Word, nous créons un objet Document. Une tâche courante lors de l'utilisation de l'automatisation de Word consiste à spécifier une zone dans un document, puis à en faire quelque chose, comme insérer du texte et vérifier l'orthographe. Un objet qui représente une zone contiguë dans un document est appelé Range.

05

de 07

Le projet de vérification orthographique - Vérification orthographique / remplacement

GetSpellingSuggestions au moment du design
GetSpellingSuggestions au moment du design.

L'idée est de parcourir le texte du mémo et de l'analyser en mots délimités par des espaces. Pour chaque mot, nous appelons MS Word pour vérifier l'orthographe. Le modèle Automation de Word contient la méthode SpellingErrors qui vous permet de vérifier l'orthographe du texte contenu dans une certaine plage.

La plage est définie pour ne contenir que le mot qui vient d'être analysé. La méthode SpellingErrors renvoie une collection de mots mal orthographiés. Si cette collection contient plus de zéro mot, nous passons. Un appel à la méthode GetSpellingSuggestions, en passant le mot mal orthographié, remplit une collection SpellingSuggestions de mots de remplacement suggérés.

Nous transmettons cette collection au formulaire SpellCheck. C'est la deuxième forme de notre projet.

Pour ajouter un nouveau formulaire à un projet, utilisez Fichier | Nouvelle forme. Laissez-lui le nom «frSpellCheck». Ajoutez trois composants TBitBtn sur ce formulaire. Deux EditBox-es et un ListBox. Notez les trois autres étiquettes. L'étiquette "Pas dans le dictionnaire" est "connectée" à la zone d'édition edNID. L'EDNID affiche simplement le mot mal orthographié. La zone de liste lbSuggestions répertorie les éléments de la collection SpellingSuggestions. La suggestion d'orthographe sélectionnée est placée dans la zone d'édition edReplaceWith.

Les trois BitButtons sont utilisés pour annuler la vérification orthographique, ignorer le mot actuel et pour changer le mot mal orthographié avec celui de la zone d'édition edReplaceWith. La propriété ModalResult des composants BitBtn est utilisée pour faire référence à ce sur quoi l'utilisateur a cliqué. Le bouton "Ignorer" a sa propriété ModalResult définie sur mrIgnore, "Modifier" sur mrOk et "Annuler" sur mrAbort.

Le frSpellCheck a une variable de chaîne publique appelée sReplacedWord. Cette variable renvoie le texte dans edReplaceWith lorsque l'utilisateur appuie sur le bouton "Modifier".

07

de 07

Thésaurus? Thésaurus!

En prime, le projet a le code à utiliser Thésaurus des mots. L'utilisation du thésaurus est beaucoup plus facile. Nous n'analysons pas le texte, pour le mot sélectionné, la méthode CheckSynonym est appelée. Cette méthode affiche sa propre boîte de dialogue de sélection. Une fois qu'un nouveau mot est sélectionné, le contenu de la plage de documents Word est utilisé pour remplacer le mot d'origine.

instagram story viewer