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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Gérer les uses Delphi 6


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Par défaut Gérer les uses Delphi 6
    Bonsoir,

    Je suis actuellement en train de développer une fonction qui permet d'ouvrir et modifier un document Word, enfin, pour être honnête, la fonction est déjà codé je ne fais que la modifier pour l'adapter à un nouveau document.

    Le problème que je rencontre est que Delphi ajoute de son propre chef dans les uses "WordCS", du coup toutes les autre fonctions ne compilent plus même celles qui fonctionnaient initialement...

    J'ai une sauvegarder du projet ce n'est pas le soucis, mais je n'arrive pas à trouver dans les options ce que je pourrais changer pour bloquer cette initiative de Delphi
    Je suis sous delphi 6


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
     
     
    //------------------------------------------------------------------------------
    procedure TForm1.EditionWord;
    var
      aFileName : AnsiString;
      WordDocument, WordDocuments : variant;
     
    begin
        With Query Do
        Begin
          aFileName :='mondocument.docx';
          WordDocuments := WordApplication1.Documents;
          WordDocument := WordDocuments.Open(Repertoire+'\Documents\'+aFileName);
          WordDocument.shapes.item(1).select;
          WordApplication1.selection.typetext(fieldbyname('NOM').AsString);
          WordDocument.shapes.item(2).select;
          WordApplication1.selection.typetext(fieldbyname('PRENOM').AsString);
          WordDocument.shapes.item(3).select;
          WordApplication1.selection.typetext(fieldbyname('ADR1').AsString + ' ' + fieldbyname('ADR2').AsString + ' ' + fieldbyname('VILLE').AsString);
          WordDocument.shapes.item(4).select;
          WordApplication1.selection.typetext(fieldbyname('CP').AsString);
          WordDocument.shapes.item(5).select;
          WordApplication1.selection.typetext(fieldbyname('EMAIL').AsString);
          WordDocument.shapes.item(1).select;
     
          aFileName := Repertoire+'\Resultats\'+'mondoc '+fieldbyname('NOM').AsString+' ' +fieldbyname('PRENOM').AsString+'.docx';
     
          WordDocument.SaveAs(aFileName,EmptyParam,EmptyParam,
                     EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                     EmptyParam,EmptyParam,EmptyParam,EmptyParam);
          CopyFile(PChar(aFileName),PChar(FileListBox.Directory+'\'+ExtractFileName(aFileName)),False);
          FileListBox.Update;
        End;
        WordApplication1.Visible := true;
        WordApplication1.Disconnect;
        WordDocument := unassigned;
        WordDocuments := unassigned;
    end;

  2. #2
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    étrange...que contient cette unité ?

    en général c'est la présence d'un composant sur la fiche qui produit l'ajout automatique d'une unité dans les Uses.

    place cette unité en début de Uses si elle perturbe ton code.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Par défaut
    étrange...que contient cette unité ?
    Eh bien je ne sais pas du tout , c'est la première fois que je bidouille un document Word avec Delphi..

    place cette unité en début de Uses si elle perturbe ton code.
    Ca a marché! Si je comprend bien Delphi cherche en priorité une correspondance avec les uses en fin de liste?

    Je sais pas si je dis ça correctement, mais merci pour le dépannage en tout cas! j'étais bloqué la dessus depuis quelques heures déjà

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 089
    Par défaut
    WordApplication1 c'est un TWordApplication, c'est surement lui qui provoque l'ajout
    Sinon c'est bête d'utiliser TWordApplication avec des variants, soit on fait tout en EarlyBinding avec TWordApplication soit tout en LateBinding avec OLEVariant

    Si vous n'utilisez pas les inferfaces, supprimer WordApplication1 et remplacer par du OLE LateBinding voir Tutoriel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
          aFileName :='mondocument.docx'; 
          WordDocuments := WordApplication1.Documents; // a Changer
          WordDocument := WordDocuments.Open(Repertoire+'\Documents\'+aFileName);
     
     
          // ... à la fin
          WordApplication1.Visible := true; // a surppmier
        WordApplication1.Disconnect; // a surppmier
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
          aFileName :='mondocument.docx';  
          WordApp := CreateOleObject('Word.Application'); // déclarer comme OLEVariant
          WordDocuments := WordApp.Documents;
          WordDocument := WordDocuments.Open(Repertoire+'\Documents\'+aFileName);
     
           // ... à la fin
          WordApp.Quit;
          WordApp := unassigned;
    Cela te permettra de retirer WordCS des uses.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par PetitBoutDeCode Voir le message
    Ca a marché! Si je comprend bien Delphi cherche en priorité une correspondance avec les uses en fin de liste?

    Je sais pas si je dis ça correctement, mais merci pour le dépannage en tout cas! j'étais bloqué la dessus depuis quelques heures déjà
    c'est le principe même du Pascal, un langage qui se compile en une seule passe. il se lit de haut en bas, donc ce qui est déclaré en dernier a la préférence sur ce qui précède; notamment quand deux unités déclarent des informations portant le même nom, c'est l'unité déclarée en dernier qui est utilisée...et pour utiliser un symbole, il DOIT avoir été déclaré précédemment, donc plus haut dans le code, Uses y compris.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2021
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2021
    Messages : 164
    Par défaut
    Je vois..

    J'imagine que c'est ce qui arrive à force de copier/coller/adapter sans forcément comprendre l'intégralité du code .

    Si vous n'utilisez pas les inferfaces, supprimer WordApplication1 et remplacer par du OLE LateBinding voir Tutoriel
    Effectivement cela corrige le soucis, en revanche j'étais passé par ce tutoriel avant de poster (sans comprendre l'origine du soucis) et je me suis rendu compte qu'il y avait une erreur (je crois),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    try
        vMSWord := GetActiveOleObject('Excel.Application');
    except
        vMSExcel := CreateOleObject('Excel.Application');
    end;
    Il faudrait remplacer par Word.Application non ?

    c'est le principe même du Pascal, un langage qui se compile en une seule passe. il se lit de haut en bas, donc ce qui est déclaré en dernier a la préférence sur ce qui précède; notamment quand deux unités déclarent des informations portant le même nom, c'est l'unité déclarée en dernier qui est utilisée...et pour utiliser un symbole, il DOIT avoir été déclaré précédemment, donc plus haut dans le code, Uses y compris.
    C'est exactement le genre d'informations que j'aime apprendre, même si j'imagine que ça fait parti des bases qu'il me faudrait revoir

  7. #7
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    oui Excel.Application, c'est sans surprise utilisé pour dialoguer avec Excel

    les bases me semble être un minimum, j'ai publié il y a longtemps un livre sur Delphi 7 dont les bases restent valides...mais il n'est plus en vente

    j'ai cru le trouver en ligne sur ce site mais ce n'est que la table des matières
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/02/2021, 10h29
  2. use case gérer les factures
    Par hamzawhy dans le forum Cas d'utilisation
    Réponses: 11
    Dernier message: 19/05/2015, 16h07
  3. Gérer les messages d'erreurs dans delphi
    Par nakry dans le forum Débuter
    Réponses: 2
    Dernier message: 11/05/2010, 14h32
  4. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  5. gérer les erreurs intebase avec delphi
    Par mondanikoffi dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2004, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo