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 :

Du texte dans un TBitmap


Sujet :

Langage Delphi

  1. #1
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut Du texte dans un TBitmap
    Bonjour à tous,

    j'ai un petit souci, en effet, lorsque je veux mettre du texte, que je récupère à partir d'un memo, dans un TBitmap, j'utilise la méthode Textout du canvas.
    Le truc, c'est que si j'ai des saut de ligne etc, cette méthode ne gère pas le cas et je me retrouve avec tout le texte sur une seule ligne.
    Quelqu'un sait-il comment faire pour gérer mes sauts de ligne ?

    Mon Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    bmp:= TBitmap.Create;
       try
          text :=Memo.Text ;
          bmp.width:=bmp.Canvas.TextWidth(text) ;
          bmp.Height:=bmp.Canvas.TextHeight(text) ;
          bmp.Canvas.TextOut(0,0,text);
    //ensuite je dessine mon bmp dans un paintbox
       finally
          bmp.free ;
       end ;
    resultat, dans mon paintbox, si j'ai essayé d'ecrire:
    vive developpez.com
    vive moi
    j'ai

    vive developpez.com||vive moi
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Utilise l'API DrawText avec DT_WORDBREAK:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      bmp:= TBitmap.Create;
      try
        text := Memo.Text ;
        bmp.width := bmp.Canvas.TextWidth(text) ;
        bmp.Height := bmp.Canvas.TextHeight(text) * Memo.Lines.Count;
        MyRect := Rect(0, 0, bmp.Width, bmp.Height);
        DrawText(bmp.Canvas.Handle, PChar(Text), -1, MyRect,
          DT_NOPREFIX or DT_WORDBREAK);
    //ensuite je dessine mon bmp dans un paintbox
      finally
        bmp.free ;
      end ;
    @+ Claudius

  3. #3
    Membre émérite Avatar de Cpt Anderson
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2005
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 624
    Points : 2 477
    Points
    2 477
    Par défaut
    Merci Cl@udius
    Voici la méthode de mon chef:

    copy (DateTimeToStr(Now),7,4)+
    copy (DateTimeToStr(Now),4,2)+copy (DateTimeToStr(Now),1,2)+copy (DateTimeToStr(Now),12,2)+
    copy (DateTimeToStr(Now),15,2)+copy (DateTimeToStr(Now),18,2)

    Je lui ai dit que FormatDateTime irait surement mieux


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

Discussions similaires

  1. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  2. Texte dans un canevas
    Par Bernard M dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2002, 17h56
  3. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33
  4. taille du texte dans un viewport
    Par pitounette dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/07/2002, 12h06
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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