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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Driss HANIB
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" a écrit dans le message de news:
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.
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" <bs173990@skynet.be> a écrit dans le message de news:
uCJkgmUZKHA.1596@TK2MSFTNGP06.phx.gbl...
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.
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" a écrit dans le message de news:
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
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" a écrit dans le message de news: >> 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
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" <bs173990@skynet.be> a écrit dans le message de news:
>> 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
ici utiliser Printer.Font.Underline = True avant le texte à souligner
Non, justement, il veut surligner le texte, pas le souligner!
"David" a écrit dans le message de news: >> 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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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
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" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 4b013224$0$927$ba4acef3@news.orange.fr...
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" <bs173990@skynet.be> a écrit dans le message de news:
>> 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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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
Ah OK
autant pour moi. Voilà de se précipiter Je dois avoir cela sous la main je regarde..
Driss "Vincent Guichard" a écrit dans le message de 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" a écrit dans le message de news: >> 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
Ah OK
autant pour moi.
Voilà de se précipiter
Je dois avoir cela sous la main je regarde..
Driss
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 4b013224$0$927$ba4acef3@news.orange.fr...
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" <bs173990@skynet.be> a écrit dans le message de news:
>> 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
autant pour moi. Voilà de se précipiter Je dois avoir cela sous la main je regarde..
Driss "Vincent Guichard" a écrit dans le message de 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" a écrit dans le message de news: >> 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
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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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
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
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" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 4b013224$0$927$ba4acef3@news.orange.fr...
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" <bs173990@skynet.be> a écrit dans le message de news:
>> 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
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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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
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" a écrit dans le message de news:
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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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
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" <dhanib@club-internet.fr> a écrit dans le message de news:
ugv8d84ZKHA.4668@TK2MSFTNGP06.phx.gbl...
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
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" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message de
news: 4b013224$0$927$ba4acef3@news.orange.fr...
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" <bs173990@skynet.be> a écrit dans le message de news:
>> 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
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" a écrit dans le message de news:
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
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" a écrit dans le message de 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" a écrit dans le message de news: >> 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