Éditions Eyrolles

Groupe Eyrolles

Programmation OpenOffice.org par Bernard Marcelly, Laurent Godard

Errata

Nous avons pris le plus grand soin à relire le livre plusieurs fois et desirions fournir au lecteur un ouvrage comportant le moins de coquilles possible. Néanmoins, plus que tout autres, nous sommes faillibles et il reste forcement quelques erreurs minimes. Cette section liste page par page les quelques imperfections que nous decouvrons au fur et à mesure. N'hésitez pas à nous transmettre les coquilles que vous pourriez decouvrir. Cherchez bien, il y en a ;)

  • Page 31
    Arguments d'appels de la macro.
    Évitez de transmettre en argument de macros une chaîne de caractères comportant des espaces ou guillemets, il faudrait alors multiplier les guillemets à l'appel.
    précision
    Une chaîne de caractères est transmise telle quelle, sans rajouter de guillemets, sous Windows XP. Sous d'autres versions de MS-Windows il peut être nécessaire de rajouter des guillemets.
    Il n'est pas possible de transmettre une chaîne de caractères comportant un guillemet ou une virgule, et les lettres accentuées sont modifiées.
  • Page 70
    Le nombre total d'éléments du vecteur ne doit pas dépasser 16 368, et les valeurs extrêmes de l'index sont -32 768 et 32 767.
    lire
    Les indications sur le nombre total d'éléments du vecteur et les valeurs extrêmes d'index sont inexactes. En réalité il semble que la seule limite soit la mémoire. Nous avons ainsi rempli et vérifié un tableau d'entiers Long dont les index extrêmes étaient -500000 et 500000, soit plus d'un million d'éléments.
  • Page 126
    Le résultat de la fonction (tableau 8-5) permet de déterminer quel bouton a été actionné. Le tableau indique aussi l?action résultant de la fermeture de la boîte de dialogue (case X dans le coin de la fenêtre).
    lire
    Le résultat de la fonction (tableau 8-5) permet de déterminer quel bouton a été actionné. Le tableau 8-2 indique aussi l?action résultant de la fermeture de la boîte de dialogue (case X dans le coin de la fenêtre).
  • Pages 173-174
    Propriétés d'une imprimante
    lire
    La propriété PaperSize est toujours significative. Mais les dimensions de la feuille d'impression ne sont pas en 1/100 de mm mais en twips, contrairement à ce que dit la documentation API.
    Un twip represente 1/20 de point qui represente lui même 1/72 de pouce. 1 Pouce représentant environ 2,54 cm, cela amène à 1 twip = 1,76 centième de millimètre.
    rem CD-Rom : Code10-01.sxw   bibli : Imprimer Module1
    Option Explicit
    
    Sub LirePropImprimante() ' correction : 17/10/2004
    Dim monDocument As Object, imprimante As Variant
    Dim papVal As Integer, papTaille As Object
    Dim liste As String, cr As String
    Const twipsParMm = 56.7
    
    cr = chr(13) ' caractère de fin de ligne
    monDocument = ThisComponent
    imprimante = monDocument.Printer
    printProps(imprimante) ' lister les noms de propriétés
    
    liste = "Nom : " & getPropVal(imprimante, "Name") & cr & _
      "Occupée : " & getPropVal(imprimante, "IsBusy") & cr & _
      "Orientation de papier modifiable : " & _
        getPropVal(imprimante, "CanSetPaperOrientation") & cr & _
      "Format de papier modifiable : " & _
        getPropVal(imprimante, "CanSetPaperFormat") & cr & _
      "Taille de papier modifiable : " & _
        getPropVal(imprimante, "CanSetPaperSize") & cr
    
    papVal = getPropVal(imprimante, "PaperOrientation")
    if papVal = com.sun.star.view.PaperOrientation.PORTRAIT then
      liste = liste & "Orientation Portrait" & cr
    else
      liste = liste &  "Orientation Paysage" & cr
      end if
    
    papTaille = getPropVal(imprimante, "PaperSize")
    papVal = getPropVal(imprimante, "PaperFormat")
    Select Case papVal
    Case com.sun.star.view.PaperFormat.A4
      liste = liste & "Format A4"
    Case com.sun.star.view.PaperFormat.LETTER
      liste = liste & "Format Letter"
    Case com.sun.star.view.PaperFormat.USER
      liste = liste & "Format inconnu : "
    Case Else
      liste = liste & "Autre format connu"
    end Select
      liste = liste & cr & _
      "Hauteur : " & Format(papTaille.Height/twipsParMm, "0.#") & " mm" & cr & _
      "Largeur : " & Format(papTaille.Width/twipsParMm,  "##0.#") & " mm"
    MsgBox(liste, 0, "Capacités de l'imprimante")
    End Sub
  • Page 259
    Il existe une bogue pour les styles de caractères qui plante OpenOffice.org si on modifie la propriété ParentStyle avant l'insertion du nouveau style dans sa famille.
    Nous avons modifié l'ordre des instructions de l'exemple page 259 afin qu'il puisse aussi fonctionner avec des styles de caractères.
    rem CD-Rom : Code11-07.sxw   bibli : ModifStyles Module3
    Option Explicit
    
    Sub HeriterStyle()
    Dim monDocument As Object
    Dim lesFamilles As Object, uneFamille As Object
    Dim nouvStyle As Object
    monDocument = ThisComponent
    lesFamilles = monDocument.StyleFamilies
    uneFamille = lesFamilles.getByName("ParagraphStyles")
    nouvStyle = monDocument.CreateInstance(_
                            "com.sun.star.style.ParagraphStyle")
    uneFamille.insertByName ("Signature colorée", nouvStyle)
    nouvStyle.ParentStyle = "Signature" ' hériter d'un style
    nouvStyle.CharColor = RGB(0,100,255) ' changer la couleur
    End Sub
  • Page 564
    L'argument tableau Args() de la méthode permet de gérer le synchronisme du processus.
    lire
    L'argument tableau MyProps() de la méthode permet de gérer le synchronisme du processus.