IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants VCL Delphi Discussion :

Couleurs dans un memo


Sujet :

Composants VCL Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut Couleurs dans un memo
    bonjour à tous,
    j'ai un pb lors de l'utilisation d'un memo.
    Je fais un clear du memo puis j'écris des infos de-dans en touchant la couleur de fond (clblack) et la couleur de caractère (clAqua). La 1ère fois cette étape marche bien, mais les fois suivante ça ne marche pas, l'info est écrite dans le mémo mais on ne la voit pas à l'écran, pourtant ce sont tj les mêmes couleurs de fond et de caractères. Entre chaque étape je fais un clear (le clear est biensur fait avant l'écriture des données dans le memo).
    Est-ce que qqu'un a déjà eu ce pb ????
    MERCI

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Tu peux mettre ton code ? Ce sera plus facile de resoudre ton problème. Mais à priori si tu change avec un code type Memo1.Color:=clBlack et Memo1.Font.Color:=clAqua avant ou après avoir changé le texte, c'est pareil, le mémo est redessiné.

  3. #3
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par Nicolas.C
    Tu peux mettre ton code ? Ce sera plus facile de resoudre ton problème. Mais à priori si tu change avec un code type Memo1.Color:=clBlack et Memo1.Font.Color:=clAqua avant ou après avoir changé le texte, c'est pareil, le mémo est redessiné.
    En effet, C'est un des "Problemes" du MEmo. Memo1.Color et TMemo.Font sont directement lié a TMemo.Canvas.BrushColor et TMemo.Canvas.Font
    ce qui rend impossible le changement partiel de couleurs.

    Donc peut importe l'endroit ou on change la couleur, puisque ca influance tout le texte en declanchant, en effet, le reaffichage du composant.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    zone11 étant mon memo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    zone11.clear;
     
    zone11.Font.color := clAqua;
    zone11.Color := clBlack;
    zone11.Text := Buffer;
    zone11.Font.Size := Taille;
    Donc au 1er passage j'ai bien les infos à l'écran mais à partir du second plus rien...
    Chose bizarre : au second passage j'ai tout le memo en couleur clBlack mais si avec la souris j'essaie de sélectionner la zone texte du memo, là je vois que mon texte a bien été écrit...mais seulement en sélectionnant avec la souris...

  5. #5
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Etrange en effet ......
    Si tu vois le texte en le selectionnant uniquement, c'est qu'il repasse la couleur de la font en ClBlack ..... quand a savoir pourquoi ... ton code nous permet pas de repondre a cette question
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 43
    Points : 52
    Points
    52
    Par défaut
    Si tu vois seulement en sélectionnant avec la souris c'est que tu as la même couleur pour le fond du mémo et pour la police, tu peux tenter un zone11.repaint pour mettre à jour l'affichage du mémo.

    Chez moi ton code fonctionne très bien j'ai juste remplacé Buffer par une chaine écrite directement dans le compilateur. Mais je ne vois pas de souci à ce niveau là si ton Buffer est bien de type String.

  7. #7
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Visiblement le probleme viens pas de Buffer puisque le texte apparait ...... mais juste pas de la bonne couleur.

    Verifie touts tes acces a Zone11 pour verifier que tu ne met pas a jour malencontreusement la propriete Font.color.

    De plus a chaques passages, affiche une valeur diferente de Buffer de maniere a verifier que tu rentre bien dans la boucle "a chaques passages".

    Si la valeur ne change pas et que par erreur tu change la couleur du texte ailleur, tu ne peux pas etre sur que tu ai bien execute le code poste lors du 2e passage .. car il n'y a pas de raison que l'execution de ce code ne retablisse pas la bonne couleur.

    Verifie aussi que lors d'un 2e passage tu ne change pas la couleur du texte apres avoir execute le code posté ... ce qui neutraliserais le changemetn (temporaire et furtif) de ton code.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    si je mets en dur :
    zone11.Text := 'TOTO';
    à la place de :
    zone11.Text := Buffer;

    là ça marche....

    Buffer est bien un string....
    et il n'y a que là où je touche à mes couleurs de font et background....

  9. #9
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Quel est la valeur de Buffer ? (on sais jamais)
    Sa declaration, son affectation, etc ...

    [Edit]
    Et pkoi passer par la prop "Text" et non pas "Lines" ?
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    Buffer est déclaré en string.

    Buffer contient : CLOSE*

    j'ai essayé avec Lines.Add(Buffer) => pareil

  11. #11
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Dur a dire comme ca .....
    eventuelement (si le codeest un peu gros) met le sur internet et poste le lien ici, qu'on verifie mieux.
    On passe du temps a vous repondre, alors soyez sympas, passez du temps ..... a vous relire !
    --
    Pourquoi tant de haine pour cette pauvre aide Delphi ????
    Aiiimezzz laaaaa .... Si-Non-Cham-Pi-Gnon !!!
    --
    Pour plus de Renseignements : Venez me rejoindre sur Msn .... Promis je mords pas

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 139
    Points : 56
    Points
    56
    Par défaut
    bon j'ai résolu le pb :
    en fait dans ma variable buffer il y avait : ' CLOSE*'
    et l'espace en début me provoquer le pb que j'avais.
    Pourquoi ? je ne sais pas....
    Donc en faisant : Trim(buffer) pour enlever les espace ça marche bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. alterner les couleurs dans un tableau avec xsl
    Par Eithelgul dans le forum XSL/XSLT/XPATH
    Réponses: 14
    Dernier message: 04/05/2015, 00h29
  2. Changement de couleur d'une ligne dans un Memo
    Par andreditdd dans le forum Composants VCL
    Réponses: 8
    Dernier message: 19/08/2008, 14h47
  3. Couleurs dans Memo
    Par milou31 dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/04/2007, 11h32
  4. Ecrire du texte en couleurs dans un composant
    Par wutang dans le forum Composants
    Réponses: 11
    Dernier message: 12/07/2004, 11h55
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo