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

Langage Delphi Discussion :

Problème avec TextOut : brush et pen transparent


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 19
    Par défaut Problème avec TextOut : brush et pen transparent
    Bonjour,

    je dessine du texte dans un canvas (avec TextOut)
    mais mon texte a la couleur du dernier brush
    je voudrais que la background du texte soit transparent.

    => comment fait-on pour mettre la couleur d'un brush et un pen à transparent.

    c'est bete mais je ne trouve pas

    Merci

  2. #2
    Membre expérimenté
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Par défaut
    salut,
    je crois que le brus doit avoir un style à bsclear, un truc comme ça...

  3. #3
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Salut

    Je ne comprends pas où est le pb...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.FormPaint(Sender: TObject);
    begin
      canvas.Font.Color:=clblack;
      canvas.TextOut(10,10,'TEXTE');
    end;
    L'arrière-plan du texte est toujours transparent
    On peut le vérifier en changeant la propriété Form1.Color :

    canvas.font n'a ni propriété pen ni propriété brush

  4. #4
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    salut ,

    En fait tu as raison OutOfRange , tant que tu modifies pas la valeur de la couleur du pinceau Brush.color car Les valeurs par defaut de:
    - Brush.color = couleur du parent
    - Brush.style = BsSolid

    Ce qui donne un aspect de transparence mais qui ne l'est pas .

    Donc soit definir la propriété de Brush.style = BsClear pour qu'il ne tienne pas compte de la couleur du pinceau pendant de l'ecriture ou lui donner la meme couleur que le fond.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
       form1.Canvas.Brush.color:=cllime;
       form1.Canvas.fillrect(Rect(90,90,200,220));
     
       form1.Canvas.Brush.color:=clnavy; //<= change la couleur de fond du texte
       form1.Canvas.Font.Color:=clred;
       form1.Canvas.Font.size:=30;
     
       // defini la couleur de font
       form1.Canvas.Brush.Style:=BsClear; // ne tiens pas compte de la couleur de pinceau
       //ou
       // form1.Canvas.Brush.color:=cllime;  // refini la couleur du pinceau
     
       form1.Canvas.textout(100,100,'toto');
    end;
    bye.

  5. #5
    Membre éclairé
    Avatar de OutOfRange
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 533
    Par défaut
    Oups
    C'est toi qui a raison petitcoucou31
    J'ignorais que l'arrière-plan d'un textout était rempli avec la couleur de brush...
    Mais tu donnes la bonne soluce avec brushstyle:=bsclear

    Bonne prog

Discussions similaires

  1. Problème avec Canvas TextOut
    Par dadouuuu dans le forum Débuter
    Réponses: 4
    Dernier message: 22/12/2010, 10h08
  2. OpenGL problème avec transparence
    Par Elstak dans le forum OpenGL
    Réponses: 11
    Dernier message: 04/04/2009, 17h41
  3. Texte en transparence avec TextOut
    Par TigreRouge dans le forum MFC
    Réponses: 2
    Dernier message: 06/06/2005, 22h57
  4. [SWT] Problème avec la transparence des PNG
    Par sirjuh dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 02/08/2004, 08h07
  5. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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