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

C++Builder Discussion :

Pilotage Word 2003 sous Borland C++ Builder : les bordures de tableaux


Sujet :

C++Builder

Vue hybride

akeix Pilotage Word 2003 sous... 13/04/2011, 13h34
ShaiLeTroll Je trouve regrettable que les... 13/04/2011, 15h09
akeix Mon tableau fait 123 lignes x... 13/04/2011, 23h28
ShaiLeTroll HasHorizontal et HasVertical... 14/04/2011, 10h11
akeix Bon, j'ai trouvé... c'est un... 14/04/2011, 11h28
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 21
    Par défaut Pilotage Word 2003 sous Borland C++ Builder : les bordures de tableaux
    Bonjour,

    Pour mettre des bordure à mon tableau, j'utilse les procédures donnée dans la FAQ C++ Builder : Comment mettre en forme le tableau ?.

    Cela fonctionne tres bien sauf pour les colonnes intérieures.
    En effet, quand je fixe les bordures des colonnes intérieures, j'ai une exception qui est levée !

    Avez-vous déjà eu ce problème ? Avez-vous des solutions ?

    Merci d'avance

    Cordialement,

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    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 083
    Par défaut
    Je trouve regrettable que les valeurs d'index de Borders->Items[] soit en dur dans la FAQ alors qu'il y a Borders Interface et WdBorderType Enumeration

    Issu de msword9.olb (.\CBuilder6\Include\Vcl\word_2k.h)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    typedef enum WdBorderType
    {
      wdBorderTop = 0xFFFFFFFF, 
      wdBorderLeft = 0xFFFFFFFE, 
      wdBorderBottom = 0xFFFFFFFD, 
      wdBorderRight = 0xFFFFFFFC, 
      wdBorderHorizontal = 0xFFFFFFFB, 
      wdBorderVertical = 0xFFFFFFFA, 
      wdBorderDiagonalDown = 0xFFFFFFF9, 
      wdBorderDiagonalUp = 0xFFFFFFF8
    } WdBorderType;
    A Part cela, cela ne devrait pas, c'est une valeur qui existe !
    Les Bordures Intérieures, en lisant la FAQ je n'avais pas compris ce que c'était, en ouvrant Word et le Menu "Bordure et Trame", je vois mieux !

    Pour LineStyle, Idem, utilise les constantes de word_2k.h, après tout l'header est fourni, même si tu travailles en LateBiding, rien n'empêche de s'en servir pour la lisibilité du code !

    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
    typedef enum WdLineStyle
    {
      wdLineStyleNone = 0, 
      wdLineStyleSingle = 1, 
      wdLineStyleDot = 2, 
      wdLineStyleDashSmallGap = 3, 
      wdLineStyleDashLargeGap = 4, 
      wdLineStyleDashDot = 5, 
      wdLineStyleDashDotDot = 6, 
      wdLineStyleDouble = 7, 
      wdLineStyleTriple = 8, 
      wdLineStyleThinThickSmallGap = 9, 
      wdLineStyleThickThinSmallGap = 10, 
      wdLineStyleThinThickThinSmallGap = 11, 
      wdLineStyleThinThickMedGap = 12, 
      wdLineStyleThickThinMedGap = 13, 
      wdLineStyleThinThickThinMedGap = 14, 
      wdLineStyleThinThickLargeGap = 15, 
      wdLineStyleThickThinLargeGap = 16, 
      wdLineStyleThinThickThinLargeGap = 17, 
      wdLineStyleSingleWavy = 18, 
      wdLineStyleDoubleWavy = 19, 
      wdLineStyleDashDotStroked = 20, 
      wdLineStyleEmboss3D = 21, 
      wdLineStyleEngrave3D = 22, 
      wdLineStyleOutset = 23, 
      wdLineStyleInset = 24
    } WdLineStyle;
    Maintenant, pour la violation d'accès, vérifie que ton tableau (ta sélection) comporte bien plusieurs colonnes, sinon, comme il n'y a pas de colonne, tu n'as pas le droit d'affecter un style
    Vérifie si "vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1").OlePropertyGet("Borders").OleFunction("Item", "-6")" est différent de NULL
    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

  3. #3
    Membre averti
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 21
    Par défaut
    Mon tableau fait 123 lignes x 4 colonnes.

    J'ai essayé le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Variant v1,v2;
     
    v1 = vWDocument.OlePropertyGet("Tables");
    v2 = v1.OleFunction("Item", "1");
    v1 = v2.OlePropertyGet("Range");
    v2 = v1.OlePropertyGet("Borders");
    v1 = v2.OleFunction("Item", wdBorderVertical);
    v1.OlePropertySet("LineStyle", wdLineStyleSingle);
    L'exception est levée lors de l'exécution de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v1 = v2.OleFunction("Item", wdBorderVertical);
    Par contre, je n'ai pas de probleme si je fixe la bordure droite de chaque colonne.

    Je continue à chercher.

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    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 083
    Par défaut
    HasHorizontal et HasVertical devrait te permettre de vérifier l'accès à wdBorderVertical avant de utiliser Item[]
    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
    Membre averti
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 21
    Par défaut
    Bon, j'ai trouvé... c'est un mauvais copier-coller de ma part !

    Il faut supprimer : OlePropertyGet("Range")

    Donc voici la ligne correct (conforme à la FAQ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vWDocument.OlePropertyGet("Tables").OleFunction("Item", "1").OlePropertyGet("Borders").OleFunction("Item", wdBorderVertical).OlePropertySet("LineStyle", wdLineStyleSingle);
    Merci pour votre aide

    Bonne journée

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

Discussions similaires

  1. [Installation] Compiler Qt4 sous Borland C++ Builder 6
    Par pottiez dans le forum Débuter
    Réponses: 12
    Dernier message: 03/10/2008, 08h21
  2. combox sous borland c++ builder 6
    Par themarki dans le forum C++Builder
    Réponses: 0
    Dernier message: 16/06/2008, 09h14
  3. messagebox sous borland c++ builder
    Par themarki dans le forum C++Builder
    Réponses: 4
    Dernier message: 14/06/2008, 12h22
  4. Réponses: 2
    Dernier message: 11/06/2008, 10h55
  5. Problème avec GLUT sous borland c++ builder X
    Par hiko-seijuro dans le forum GLUT
    Réponses: 1
    Dernier message: 04/11/2004, 12h47

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