surligner une phrase/mots

Le
David
Bonjour à tous,

Au départ de printer.print et avec une imprimante couleur
est-il possible de surligner (pas souligner) la phrase
entière voire un ou 2 mots ?

texte=Ex turba vero imae sortis
Printer.Print texte

Merci d'avance.
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Driss HANIB
Le #20564091
Bonjour

regarde l'objet printer et tu verras notament comment formater le texte

ici utiliser Printer.Font.Underline = True
avant le texte à souligner
puis tu utilise printer.print
puis tu dois mettre
Printer.Font.Underline = False
pour enlever le soulignement pour les textes suivants

Driss

"David"
Bonjour à tous,

Au départ de printer.print et avec une imprimante couleur
est-il possible de surligner (pas souligner) la phrase
entière voire un ou 2 mots ?

texte=Ex turba vero imae sortis
Printer.Print texte

Merci d'avance.
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.




Vincent Guichard
Le #20564641
Driss HANIB a écrit :
Bonjour


Bonjour

ici utiliser Printer.Font.Underline = True
avant le texte à souligner


Non, justement, il veut surligner le texte, pas le souligner!

"David" >> est-il possible de surligner (pas souligner) la phrase
>> entière voire un ou 2 mots ?

Il n'y a pas de moyen direct de faire ça à ma connaissance, mais il e st
très simple de faire une fonction pour simuler le comportement que tu
désire: il suffit de dessiner un rectangle plein avant d'écrire dessu s
le texte à surligner. Par exemple:

Sub TexteSurligne(texte As String, couleur As ColorConstants)
Dim h As Single, w As Single, x As Single, y As Single, t As Boolean
t = Printer.FontTransparent
h = Printer.TextHeight(texte)
w = Printer.TextWidth(texte)
x = Printer.CurrentX
y = Printer.CurrentY
Printer.Line Step(0, 0)-Step(w, h), couleur, BF
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontTransparent = True
Printer.Print texte;
Printer.FontTransparent = t
End Sub


Vincent Guichard
David
Le #20568031
Bonjour,

Merci pour votre programmation.
Je vais intégrer Printer.FontTransparent, dont
je ne connaissais ni l'existence ni l'utilisation,
dans ma programmation.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.

"Vincent Guichard" news: 4b013224$0$927$
Driss HANIB a écrit :
Bonjour


Bonjour

ici utiliser Printer.Font.Underline = True
avant le texte à souligner


Non, justement, il veut surligner le texte, pas le souligner!

"David" >> est-il possible de surligner (pas souligner) la phrase
>> entière voire un ou 2 mots ?

Il n'y a pas de moyen direct de faire ça à ma connaissance, mais il est
très simple de faire une fonction pour simuler le comportement que tu
désire: il suffit de dessiner un rectangle plein avant d'écrire dessus
le texte à surligner. Par exemple:

Sub TexteSurligne(texte As String, couleur As ColorConstants)
Dim h As Single, w As Single, x As Single, y As Single, t As Boolean
t = Printer.FontTransparent
h = Printer.TextHeight(texte)
w = Printer.TextWidth(texte)
x = Printer.CurrentX
y = Printer.CurrentY
Printer.Line Step(0, 0)-Step(w, h), couleur, BF
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontTransparent = True
Printer.Print texte;
Printer.FontTransparent = t
End Sub


Vincent Guichard
Driss HANIB
Le #20571991
Ah OK

autant pour moi.
Voilà de se précipiter
Je dois avoir cela sous la main je regarde..

Driss
"Vincent Guichard" news: 4b013224$0$927$
Driss HANIB a écrit :
Bonjour


Bonjour

ici utiliser Printer.Font.Underline = True
avant le texte à souligner


Non, justement, il veut surligner le texte, pas le souligner!

"David" >> est-il possible de surligner (pas souligner) la phrase
>> entière voire un ou 2 mots ?

Il n'y a pas de moyen direct de faire ça à ma connaissance, mais il est
très simple de faire une fonction pour simuler le comportement que tu
désire: il suffit de dessiner un rectangle plein avant d'écrire dessus
le texte à surligner. Par exemple:

Sub TexteSurligne(texte As String, couleur As ColorConstants)
Dim h As Single, w As Single, x As Single, y As Single, t As Boolean
t = Printer.FontTransparent
h = Printer.TextHeight(texte)
w = Printer.TextWidth(texte)
x = Printer.CurrentX
y = Printer.CurrentY
Printer.Line Step(0, 0)-Step(w, h), couleur, BF
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontTransparent = True
Printer.Print texte;
Printer.FontTransparent = t
End Sub


Vincent Guichard
Driss HANIB
Le #20572061
Salut Vincent et Jean-Pol

Effectivement je n'ai pas mieux mais par contre j'ai vu sur le net qu'il y a
un bug dans la fonction FontTransparent de l'objet printer.

il faut utiliser une api : voilà comment j'ai repris un code, pour un usage
perso..
ici dans une proriété de classe qui gère justement une écriture sur un fond
de couleur : ce qui revient au même que vincent

Private Const FondTransparent = 1
Private Const FondOPAQUE = 2

Public Property Let FontTransparent(ByVal vNewValue As Boolean)
Dim iBKMode As Long

If PrintFlag Then
Printer.FontTransparent = vNewValue
If vNewValue Then
iBKMode = SetBkMode(Printer.hDC, FondTransparent) ' on utilise
cette façon
' car il y a apparemmnt un bug dans la fonction FontTransparent
de Printer
Else
iBKMode = SetBkMode(Printer.hDC, FondOPAQUE)
'Printer.FontTransparent = True

End If
Else
ObjPrint.FontTransparent = vNewValue
Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
End If
End Property


Driss


"Vincent Guichard" news: 4b013224$0$927$
Driss HANIB a écrit :
Bonjour


Bonjour

ici utiliser Printer.Font.Underline = True
avant le texte à souligner


Non, justement, il veut surligner le texte, pas le souligner!

"David" >> est-il possible de surligner (pas souligner) la phrase
>> entière voire un ou 2 mots ?

Il n'y a pas de moyen direct de faire ça à ma connaissance, mais il est
très simple de faire une fonction pour simuler le comportement que tu
désire: il suffit de dessiner un rectangle plein avant d'écrire dessus
le texte à surligner. Par exemple:

Sub TexteSurligne(texte As String, couleur As ColorConstants)
Dim h As Single, w As Single, x As Single, y As Single, t As Boolean
t = Printer.FontTransparent
h = Printer.TextHeight(texte)
w = Printer.TextWidth(texte)
x = Printer.CurrentX
y = Printer.CurrentY
Printer.Line Step(0, 0)-Step(w, h), couleur, BF
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontTransparent = True
Printer.Print texte;
Printer.FontTransparent = t
End Sub


Vincent Guichard
David
Le #20590051
Bonjour à tous,

Un grand merci pour vos 2 réponses qui m'ont permis
de finaliser avec succès le programme pour surligner un ou
plusieurs mots dans la partie "réclame", avec un caractère
d'échappement de mon programme de facturation.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"Driss HANIB"
Salut Vincent et Jean-Pol

Effectivement je n'ai pas mieux mais par contre j'ai vu sur le net qu'il y
a un bug dans la fonction FontTransparent de l'objet printer.

il faut utiliser une api : voilà comment j'ai repris un code, pour un
usage perso..
ici dans une proriété de classe qui gère justement une écriture sur un
fond de couleur : ce qui revient au même que vincent

Private Const FondTransparent = 1
Private Const FondOPAQUE = 2

Public Property Let FontTransparent(ByVal vNewValue As Boolean)
Dim iBKMode As Long

If PrintFlag Then
Printer.FontTransparent = vNewValue
If vNewValue Then
iBKMode = SetBkMode(Printer.hDC, FondTransparent) ' on utilise
cette façon
' car il y a apparemmnt un bug dans la fonction FontTransparent
de Printer
Else
iBKMode = SetBkMode(Printer.hDC, FondOPAQUE)
'Printer.FontTransparent = True

End If
Else
ObjPrint.FontTransparent = vNewValue
Debug.Print "Fond transparent = " & ObjPrint.FontTransparent
End If
End Property


Driss


"Vincent Guichard" news: 4b013224$0$927$
Driss HANIB a écrit :
Bonjour


Bonjour

ici utiliser Printer.Font.Underline = True
avant le texte à souligner


Non, justement, il veut surligner le texte, pas le souligner!

"David" >> est-il possible de surligner (pas souligner) la phrase
>> entière voire un ou 2 mots ?

Il n'y a pas de moyen direct de faire ça à ma connaissance, mais il est
très simple de faire une fonction pour simuler le comportement que tu
désire: il suffit de dessiner un rectangle plein avant d'écrire dessus
le texte à surligner. Par exemple:

Sub TexteSurligne(texte As String, couleur As ColorConstants)
Dim h As Single, w As Single, x As Single, y As Single, t As Boolean
t = Printer.FontTransparent
h = Printer.TextHeight(texte)
w = Printer.TextWidth(texte)
x = Printer.CurrentX
y = Printer.CurrentY
Printer.Line Step(0, 0)-Step(w, h), couleur, BF
Printer.CurrentX = x
Printer.CurrentY = y
Printer.FontTransparent = True
Printer.Print texte;
Printer.FontTransparent = t
End Sub


Vincent Guichard



Publicité
Poster une réponse
Anonyme