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.


