OVH Cloud OVH Cloud

Couleur de texte

7 réponses
Avatar
André Joubert
Bonjour,
J'essaie de changer la couleur d'un texte, mais je n'y arrive
pas.

Voici ce que je fais: J'essaie de refaire en VB mes anciens outils DOS tel
quel
dans un premier temps avant de leur donner une saveur Windows.

J'utiliser donc une feuille (form) pour représenter l'écran 24 x 80.
J'utilise aussi le
font "Terminal" afin d'obtenir un espacement fixe et tous les caractères
spéciaux.
J'utilise aussi FORM_KEYDOWN pour traiter les touches de fonctions
Puis j'utilise CLS et PRINT pour écrire les résultats.

Voici ce que j'aimerais faire:

PRINT texte1;
' qqch pour changer la couleur (lettres noires sur fond blanc)
PRINT texte2 ' sur la même ligne
' qqch pour revenir à la couleur précédente (lettres jaunes sur fond bleu)

J'ai essayé form.backcolor et form.forecolor ====> mais toute la feuille
change de couleur

J'ai essayé de placer des textbox aux bons endroits avec un certain succès,
mais, car il y a
toujours un mais, le textbox reçoit focus et je peux y entrer du texte (ce
n'est désirable puisque
mon outil affiche de l'information) et de plus FORM_KEYDOWN ne reçoit plus
contrôle. J'ai
donc essayé d'ajouter form.setfocus pour régler ce problème, là encore sans
succès.


Si quelqu'un peut suggéré qqch. Ce n'est pas obligatoire que j'utilise PRINT
dans un FORM, mais
la performance est bonne lorsque je déplace l'information

Merci d'avance
André

7 réponses

Avatar
François Picalausa
Bonjour/soir,

Tu pourrais essayer avec Line, TextHeight et Textwidht:
Form.Line (x1,y1)-(x2,y2), couleur, BF

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


André Joubert wrote:
Bonjour,
J'essaie de changer la couleur d'un texte, mais je n'y
arrive pas.

Voici ce que je fais: J'essaie de refaire en VB mes anciens outils
DOS tel quel
dans un premier temps avant de leur donner une saveur Windows.

J'utiliser donc une feuille (form) pour représenter l'écran 24 x 80.
J'utilise aussi le
font "Terminal" afin d'obtenir un espacement fixe et tous les
caractères spéciaux.
J'utilise aussi FORM_KEYDOWN pour traiter les touches de fonctions
Puis j'utilise CLS et PRINT pour écrire les résultats.

Voici ce que j'aimerais faire:

PRINT texte1;
' qqch pour changer la couleur (lettres noires sur fond blanc)
PRINT texte2 ' sur la même ligne
' qqch pour revenir à la couleur précédente (lettres jaunes sur fond
bleu)

J'ai essayé form.backcolor et form.forecolor ====> mais toute la
feuille change de couleur

J'ai essayé de placer des textbox aux bons endroits avec un certain
succès, mais, car il y a
toujours un mais, le textbox reçoit focus et je peux y entrer du
texte (ce n'est désirable puisque
mon outil affiche de l'information) et de plus FORM_KEYDOWN ne reçoit
plus contrôle. J'ai
donc essayé d'ajouter form.setfocus pour régler ce problème, là
encore sans succès.


Si quelqu'un peut suggéré qqch. Ce n'est pas obligatoire que
j'utilise PRINT dans un FORM, mais
la performance est bonne lorsque je déplace l'information

Merci d'avance
André


Avatar
ng
Salut,

Essai cette fonction (je viens de l'écrire alors j'espère qu'elle marche
bien :-S) :

Public Sub Ecrit( _
oSupport As Object, _
sTxt As String, _
sCouleurTxt As ColorConstants, _
sCouleurFond As ColorConstants, _
Optional bVaALaLigne As Boolean = True _
)
Dim x As Long, y As Long
oSupport.AutoRedraw = True
oSupport.ForeColor = sCouleurTxt
x = oSupport.CurrentX
y = oSupport.CurrentY
oSupport.Line (x, y)-(x + oSupport.TextWidth(sTxt), _
y + oSupport.TextHeight(sTxt)), sCouleurFond, BF
oSupport.CurrentX = x
oSupport.CurrentY = y
If bVaALaLigne Then
oSupport.Print sTxt
Else
oSupport.Print sTxt;
End If
End Sub

exemples d'utilisation :

Ecrit Me, "Ceci est un essai", vbWhite, vbBlack, True
Ecrit Me, "Ceci est un test !!!", vbBlue, vbGreen, True

'fonctionne aussi avec une picturebox...


Nicolas.

"André Joubert" a écrit dans le message de news:
3PAPa.9692$
Bonjour,
J'essaie de changer la couleur d'un texte, mais je n'y


arrive
pas.

Voici ce que je fais: J'essaie de refaire en VB mes anciens outils DOS tel
quel
dans un premier temps avant de leur donner une saveur Windows.

J'utiliser donc une feuille (form) pour représenter l'écran 24 x 80.
J'utilise aussi le
font "Terminal" afin d'obtenir un espacement fixe et tous les caractères
spéciaux.
J'utilise aussi FORM_KEYDOWN pour traiter les touches de fonctions
Puis j'utilise CLS et PRINT pour écrire les résultats.

Voici ce que j'aimerais faire:

PRINT texte1;
' qqch pour changer la couleur (lettres noires sur fond blanc)
PRINT texte2 ' sur la même ligne
' qqch pour revenir à la couleur précédente (lettres jaunes sur fond bleu)

J'ai essayé form.backcolor et form.forecolor ====> mais toute la feuille
change de couleur

J'ai essayé de placer des textbox aux bons endroits avec un certain


succès,
mais, car il y a
toujours un mais, le textbox reçoit focus et je peux y entrer du texte (ce
n'est désirable puisque
mon outil affiche de l'information) et de plus FORM_KEYDOWN ne reçoit plus
contrôle. J'ai
donc essayé d'ajouter form.setfocus pour régler ce problème, là encore


sans
succès.


Si quelqu'un peut suggéré qqch. Ce n'est pas obligatoire que j'utilise


PRINT
dans un FORM, mais
la performance est bonne lorsque je déplace l'information

Merci d'avance
André




Avatar
MiB
Bonjour,

Couleur de fond
ActiveCell.Interior.ColorIndex = 6
Couleur du texte
ActiveCell.Font.ColorIndex = 3

Michel
-----Message d'origine-----
Bonjour,
J'essaie de changer la couleur d'un texte,


mais je n'y arrive
pas.

Voici ce que je fais: J'essaie de refaire en VB mes


anciens outils DOS tel
quel
dans un premier temps avant de leur donner une saveur


Windows.

J'utiliser donc une feuille (form) pour représenter


l'écran 24 x 80.
J'utilise aussi le
font "Terminal" afin d'obtenir un espacement fixe et tous


les caractères
spéciaux.
J'utilise aussi FORM_KEYDOWN pour traiter les touches de


fonctions
Puis j'utilise CLS et PRINT pour écrire les résultats.

Voici ce que j'aimerais faire:

PRINT texte1;
' qqch pour changer la couleur (lettres noires sur fond


blanc)
PRINT texte2 ' sur la même ligne
' qqch pour revenir à la couleur précédente (lettres


jaunes sur fond bleu)

J'ai essayé form.backcolor et form.forecolor ====> mais


toute la feuille
change de couleur

J'ai essayé de placer des textbox aux bons endroits avec


un certain succès,
mais, car il y a
toujours un mais, le textbox reçoit focus et je peux y


entrer du texte (ce
n'est désirable puisque
mon outil affiche de l'information) et de plus


FORM_KEYDOWN ne reçoit plus
contrôle. J'ai
donc essayé d'ajouter form.setfocus pour régler ce


problème, là encore sans
succès.


Si quelqu'un peut suggéré qqch. Ce n'est pas obligatoire


que j'utilise PRINT
dans un FORM, mais
la performance est bonne lorsque je déplace l'information

Merci d'avance
André


.



Avatar
André Joubert
Merci à tous pour ces réponses. Je pourrai terminer mon programme grâce à
cela.

1) François: en ajoutant une ligne forcolor tout fonctionne bien.

2) Nicolas: J'aime beaucoup cette approche, malheureusement
le reste de la feuille change de couleur.
J'espère combiner les deux de façon adéquate.

3) Michel: la solution proposée fonctionne avec EXCEL et je suis en VB

4) Zoury: Je n'ai pas eu le temps de tout changer pour utiliser un
RichTextBox.
Mais je garde cette idée pour la phase 2 de ma conversion.

Encore merci à tous
André
Avatar
ng
comment ca le reste change de couleur ?! chez moi cela semble fonctionner
parfaitement !

"André Joubert" a écrit dans le message de news:
F6DPa.9764$
Merci à tous pour ces réponses. Je pourrai terminer mon programme grâce à
cela.

1) François: en ajoutant une ligne forcolor tout fonctionne bien.

2) Nicolas: J'aime beaucoup cette approche, malheureusement
le reste de la feuille change de couleur.
J'espère combiner les deux de façon adéquate.

3) Michel: la solution proposée fonctionne avec EXCEL et je suis en VB

4) Zoury: Je n'ai pas eu le temps de tout changer pour utiliser un
RichTextBox.
Mais je garde cette idée pour la phase 2 de ma conversion.

Encore merci à tous
André




Avatar
André Joubert
"ng" wrote in message
news:
comment ca le reste change de couleur ?! chez moi cela semble fonctionner
parfaitement !



Il faut comprendre que ce n'est pas tout le texte écrit sur la feuille qui
passe par la routine
suggérée. Je soupçonne que si j'utilisais la routine pour écrire tout le
texte, alors ca fontionnerait
sûrement.

J'ai cependant réussi à faire les corrections nécessaires pour obtenir le
résultat recherché.
1) osupport.forecolor = stext C'est ce qui faisait que tout le texte
changeait de couleur
je l'ai remplacé par forecolor = stext.
2) A cause de 1) j'ai dû déplacer la routine dans la form.

Et maintenant tout fonctionne à merveille.

Ce programme une fois terminé du point de vue fonctionnalité, sera refait
pour lui donner
une allure plus "WINDOWS". Présentement ce n,est qu'une simple conversion
DOS => VB.

ANdré
Avatar
patrice henrio
Avec un Label plutôt qu'un textbox en regardant les propriétés WordWrap et
autres.
Peut-être ?

"André Joubert" a écrit dans le message de
news:3PAPa.9692$
Bonjour,
J'essaie de changer la couleur d'un texte, mais je n'y


arrive
pas.

Voici ce que je fais: J'essaie de refaire en VB mes anciens outils DOS tel
quel
dans un premier temps avant de leur donner une saveur Windows.

J'utiliser donc une feuille (form) pour représenter l'écran 24 x 80.
J'utilise aussi le
font "Terminal" afin d'obtenir un espacement fixe et tous les caractères
spéciaux.
J'utilise aussi FORM_KEYDOWN pour traiter les touches de fonctions
Puis j'utilise CLS et PRINT pour écrire les résultats.

Voici ce que j'aimerais faire:

PRINT texte1;
' qqch pour changer la couleur (lettres noires sur fond blanc)
PRINT texte2 ' sur la même ligne
' qqch pour revenir à la couleur précédente (lettres jaunes sur fond bleu)

J'ai essayé form.backcolor et form.forecolor ====> mais toute la feuille
change de couleur

J'ai essayé de placer des textbox aux bons endroits avec un certain


succès,
mais, car il y a
toujours un mais, le textbox reçoit focus et je peux y entrer du texte (ce
n'est désirable puisque
mon outil affiche de l'information) et de plus FORM_KEYDOWN ne reçoit plus
contrôle. J'ai
donc essayé d'ajouter form.setfocus pour régler ce problème, là encore


sans
succès.


Si quelqu'un peut suggéré qqch. Ce n'est pas obligatoire que j'utilise


PRINT
dans un FORM, mais
la performance est bonne lorsque je déplace l'information

Merci d'avance
André