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 :

Forcer un retour chariot


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut Forcer un retour chariot
    Bonjour,

    Pour un besoin spécifique j'écris dans le canvas d'un bitmap du texte.

    J'ai besoin de forcer un retour chariot si le texte est trop long esthétiquement parlant a peux prêt au milieu de celui-ci en remplaçant un espace par un retour chariot.

    J'ai fait ce code (qui fonctionne), mais pensez-vous que l'on puisse l'améliorer ou le rendre plus rapide si j'ai beaucoup de texte a traiter ?
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Label1.Text := DecouperPhrase(Edit1.Text);
    end;
     
    function TForm1.DecouperPhrase(const AValue: string): string;
    const
      LIMIT = 16;
    var
      sTmp: string;
      iMid, iPos, iLen: integer;
    begin
      sTmp := AValue;
     
      iLen := sTmp.Length;
     
      if iLen > LIMIT then
      begin
        iMid := iLen div 2;
     
        iPos := PosEx(' ', sTmp, iMid);
     
        if iPos > iMid then
          sTmp[iPos] := #13;
      end;
     
      Result := sTmp;
    end;

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonjour,
    pour la rapidité, je ne sais pas, mais avec ce code tu ne maitrises pas la longueur des lignes par rapport à la valeur LIMIT ?

    Ce serait peut être mieux de découper en n lignes de longueurs inférieures ou légèrement supérieures à LIMIT ?

    A+
    Charly

    PS : c'est Label1.Caption et non Label1.Text

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    Pourquoi n'utilises-tu pas DrawText en spécifiant DT_WORDBREAK ?

  4. #4
    Membre éprouvé Avatar de der§en
    Homme Profil pro
    Chambord
    Inscrit en
    Septembre 2005
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Chambord
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2005
    Messages : 765
    Points : 960
    Points
    960
    Par défaut
    Non, c’est bien .Text, vu que je travaille avec Firemonkey

    Je n’utilises pas DrawText, car je convertie mon text en Path (pour avoir une couleur pour Fill et une autre pour Stroke) et je joue avec une Matrix pour effectuer une rotation de ce dernier.

Discussions similaires

  1. retour chariot GetWindowText
    Par johnlehardos dans le forum MFC
    Réponses: 2
    Dernier message: 29/01/2004, 21h20
  2. Retour chariot
    Par raf_gug dans le forum MFC
    Réponses: 9
    Dernier message: 13/01/2004, 17h54
  3. afficher texte avec retour chariot aprèq requète sql
    Par frenchy371 dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 17h33
  4. retour chariot dans un string
    Par bono dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/12/2003, 12h17
  5. Retour chariot dans un TMemo ?
    Par Vincent PETIT dans le forum C++Builder
    Réponses: 7
    Dernier message: 27/08/2002, 18h55

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