At 2004-11-21 14:42, Agnès Simonet wrote:
Bonjour,
Voici un problème soulevé par Didier Dorange-Pattoret avec la macro
Bordure_selection.
J'essaie d'insérer une forme-texte faite par macro, avec bordure, ancrée
comme caractère, à la position courante du curseur.
La macro fonctionne sans problème dans du texte simple ou un tableau mais
curieusement dans un cadre, la forme-texte est là mais sans bordure et
apparemment sans contenu de texte. Pourtant il suffit de double-cliquer
dedans pour voir le texte. C'est très étrange.
Pour voir le rectangle et son contenu, il faut le passer en premier-plan
(clic-droit, disposition > Au premier-plan).
Par macro, il suffit de rajouter à la fin :
MonRectangle.LayerId = 1 ' passer au premier-plan
Comment j'ai trouvé çà ? en comparant avec xray le contenu de MonRectangle
avant et après la mise en premier-plan.
Ce que j'en ai déduit :
Par défaut, dans Writer les formes sont mises dans la couche 0 appelée Hell
(Enfer). En mettant la forme dans la couche 1 appelée Heaven (Paradis) elle
devient visible. C'est normal: l'enfer c'est en bas, le paradis est tout en
haut.
Le passage à la couche 1 fait aussi passer la propriété Opaque à True.
J'avais essayé de changer le ZOrder, cela n'a pas d'effet. Probablement
parce qu'un cadre n'est pas une forme ordinaire.
La macro ainsi modifiée fonctionne aussi pour mettre un rectangle dans un
cadre à l'intérieur d'un cadre...
À propos de la macro:
TexteRectangle n'est pas déclaré ( -> type Variant par défaut)
TextRectangle est déclaré String mais pas utilisé
On voit ça facilement avec Option Explicit. Ici, cette erreur n'a pas de
conséquence.
Bernard