IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ DelphiConsultez toutes les FAQ

Nombre d'auteurs : 124, nombre de questions : 933, dernière mise à jour : 28 septembre 2024  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions fréquemment posées sur les forums Delphi et Delphi et bases de données de www.developpez.com et de l'expérience personnelle des auteurs.

Nous tenons à souligner que cette FAQ ne garantit en aucun cas que les informations qu'elle propose soient correctes. Les auteurs font le maximum, mais l'erreur est humaine. Cette FAQ ne prétend pas non plus être complète. Si vous souhaitez y apporter des corrections ou la compléter, contactez un responsable (lien au bas de cette page).

Nous espérons que cette FAQ saura répondre à vos attentes. Nous vous en souhaitons une bonne lecture.

L'équipe Delphi de Developpez.com.

SommaireMicrosoft OfficeMicrosoft WordWord - Divers (6)
précédent sommaire suivant
 

Cette correction automatique ralenti Word lors d'une saisie, il est possible de la désactiver à l'aide du code suivant :

Code delphi : Sélectionner tout
1
2
WordApplication1.Options.CheckSpellingAsYouType := False;  
WordApplication1.Options.CheckGrammarAsYouType := False;

Mis à jour le 18 janvier 2014 delphi-fan

Les messages d'avertissements peuvent être supprimés en faisant

Code delphi : Sélectionner tout
1
2
3
WordApplication1.Connect; 
  
    WordApplication1.DisplayAlerts:=wdAlertsNone;
N'oubliez pas de rétablir la propriété avant la fin de votre code.
DisplayAlerts peut prendre une des valeurs suivantes :
  • wdAlertsNone : aucune alerte
  • wdAlertsMessageBox : Uniquement les boites de dialogues
  • wdAlertsAll : Toutes les alertes

Il ne s'agit pas de messages d'erreurs, mais de messages proposant un choix à l'utilisateur. Désactiver ces messages revient à toujours exécuter la même action que si l'utilisateur avait cliqué sur OUI.

Mis à jour le 18 janvier 2014 bidou

Désactiver la mise à jour n'est pas toujours pertinent.
La désactivation se fait par

Code delphi : Sélectionner tout
1
2
WordApplication1.Connect; 
    WordApplication1.ScreenUpdating:=False;
Celle-ci n'est rentable que si votre code utilise de nombreux appels à la méthode Select. Dans ce cas le gain de temps est énorme.

Mis à jour le 18 janvier 2014 bidou

Cela dépend de ce que l'on veut obtenir.
Pour démarrer la correction sur une feuille par exemple il suffit de faire :

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
WordApplication1.Connect; 
WordApplication1.Visible:=True; 
  
NomFichier:='c:\tuto.doc'; 
DocWord:=WordApplication1.Documents.Open(NomFichier,EmptyParam, 
                      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
                      EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam); 
  
Param1:=False; 
  
  
DocWord.CheckSpelling(EmptyParam,Param1,Param1,EmptyParam, 
                     EmptyParam,EmptyParam,EmptyParam,EmptyParam, 
                     EmptyParam,EmptyParam,EmptyParam,EmptyParam);
Ceci a pour effet d'ouvrir la fenêtre du correcteur.

Mis à jour le 18 janvier 2014 bidou

Utilisez le code suivant :

Code delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Function TForm1.CleanString(lTexte:WideString):WideString;  
// Test et supprime les caractéres spéciaux d'un texte issu de Word  
begin  
   // Tabulations  
 lTexte:= StringReplace(lTexte,#$D, '', [rfReplaceAll]);  
   // Coupures de ligne  
 lTexte:= StringReplace(lTexte, #$7, '', [rfReplaceAll]);  
   // Saut de pages  
 lTexte:= StringReplace(lTexte, #$C, '', [rfReplaceAll]);  
  
 Application.ProcessMessages;  
  
   // Saut de colonnes  
 lTexte:= StringReplace(lTexte, #$E, '', [rfReplaceAll]);  
   // Trait d'union conditionnel. CTRL+- (trait d'union)  
 lTexte:= StringReplace(lTexte, #$96, '', [rfReplaceAll]);  
   // Trait d'union insécable. CTRL+MAJ+- (trait d'union)  
 Result:= StringReplace(lTexte, #$97, '', [rfReplaceAll]);  
  
end; 
  
... 
  
var S:String; 
    MesPar: Paragraphs; 
    MonPar: Paragraph; 
begin 
    // Sélection par l'objet Paragraph 
 MesPar:=WordDocument1.Paragraphs; 
    // récupére le 4 eme paragraphe 
 MonPar:=MesPar.Item(4); 
 MonPar.Range.Select; 
 S:=MonPar.Range.Text; 
 S:=CleanString(S); 
end;

Mis à jour le 18 janvier 2014 Laurent Dardenne

Voici un code d'exemple ; il faut bien sur l'adapter selon votre projet :

Code Delphi : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
procedure SavePdf(const AFileName: String); 
var 
    WdApp, WdDoc: Variant; 
    FichierPDF: String; 
const 
    WdExportFormat  = 17;           // wdExportFormatPDF 
    WdExportOptimizeFor = 0;        // wdExportOptimizeForPrint 
    WdExportRange = 0;              // wdExportAllDocument 
    WdExportItem = 0;               // wdExportDocumentContent 
    WdExportCreateBookmarks = 0;    // wdExportCreateNoBookmarks 
begin 
    try 
        WdApp := CreateOleObject('Word.Application'); 
        if VarType(WdApp) <> VarDispatch then Abort; 
  
        WdApp.Visible := False; 
        WdApp.DisplayAlerts := wdAlertsNone; 
        WdDoc := WdApp.Documents.Open(AFileName); 
  
        // Change l'extension du nom du fichier en pdf 
        FichierPDF := StringReplace(AFileName, ExtractFileExt(AFileName), '.pdf', []); 
        WdDoc.ExportAsFixedFormat(FichierPDF, 
                                    WdExportFormat, False, WdExportOptimizeFor, 
                                    WdExportRange, 1, 1, WdExportItem, True, True, 
                                    WdExportCreateBookmarks, True, True, False); 
        WdApp.Quit; 
    except 
        on E: Exception do 
        .... 
    end; 
    WdDoc := Unassigned; 
    WdApp := Unassigned; 
end;
La méthode ExportAsFixedFormat de Word oblige à saisir les deux premiers paramètres, les suivants étant optionnels.

Consultez la MSDN pour des infos détaillées sur chaque argument :
ExportAsFixedFormat(OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, Range, From, To, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr).

Ce code est fonctionnel sous Delphi XE et les composants Word2000. Avec XE3, il existe une unité Word2010 qui contient les constantes citées ci-dessus.

Mis à jour le 11 mars 2014 HumanTool

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.