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

C++Builder Discussion :

[BCB6] Adapter largeur RichEdit au texte


Sujet :

C++Builder

  1. #1
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut [BCB6] Adapter largeur RichEdit au texte
    Bonjour,

    existe-t-il un moyen de définir la largeur d'un RichEdit, pour qu'il puisse afficher entièrement sa plus grande ligne ?
    Tout en sachant que la taille de la Font peut varier en cours d'utilisation du programme Sinon c'est pas marrant !
    @ bientôt...

    Salut & @+ sur 3W!

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,
    Etonnant et 'casse-pieds' ce truc, que ce soit l'exemple donné pour OnRequestResize ou bien en travaillant sur le message EN_REQUESTRESIZE, je n'obtiens pas la modification du Widht (celle du Height en revanche, oui).

    Bizarre ... (enfin pour moi)
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Bonjour,

    merci pour ce soutien. Je mets la balise à 'Résolu', parce que j'ai trouvé une solution, qui à mon goût n'est pas élégante.

    J'ai posé sur ma fiche un composant TLabel, dont la propriéte Autosize est mise à True.
    Ce composant est invisible, et j'y écris la phrase la plus longue qui sera inscrite dans le composant TRichEdit.
    Ensuite j'adapte la propriété ClientWidth de ce dernier, à la valeur de la propriété Width du TLabel. Ce dernier ayant pris la taille nécessaire pour afficher correctement la phrase.
    @ bientôt...

    Salut & @+ sur 3W!

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,

    Mince ... je crois que je viens de trouver, un peu tard donc.
    Mais chui content quand même

    Donc, il faut gérer le message WM_NOTIFY de la TForm, et capter la 'notification' EN_REQUESTRESIZE .

    Dans le .H:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall OnNotify(TMessage &msg);
     
    BEGIN_MESSAGE_MAP
         MESSAGE_HANDLER(WM_NOTIFY, TMessage, OnNotify)
    END_MESSAGE_MAP(TForm)
    Dans le .CPP:
    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
    30
     
     
    void __fastcall TForm2::OnNotify(TMessage &msg)
    {
    NMHDR *nmhdr;
    nmhdr = (tagNMHDR*)msg.LParam;
    if (nmhdr->code == EN_REQUESTRESIZE)
    {
    TControlCanvas *pc = new TControlCanvas();
    pc->Control = RichEdit1;
    int s;
    if (RichEdit1->Lines->Count > 0)
    {
    s = pc->TextExtent( RichEdit1->Lines->Strings[0] ).cx;
    	for (int i = 1; i < RichEdit1->Lines->Count; i++)
    	{
    		if ( pc->TextExtent( RichEdit1->Lines->Strings[i] ).cx > s )
    		{
    			s = pc->TextExtent( RichEdit1->Lines->Strings[i] ).cx;
    		}
    	}
    	REQRESIZE *rq;
    		rq = (REQRESIZE*)msg.LParam;
    		SetWindowPos(RichEdit1->Handle, NULL, 0, 0, s, RichEdit1->Height, SWP_SHOWWINDOW | SWP_NOMOVE);
     
    }
    delete pc;
    }
    DefaultHandler(&msg);
    }
    A voir avec les variations possibles de la Font, comme énoncé au début.
    Et pis, il faut aussi fixer une limite minimum pour le redimensionnement du RichEdit, parceque sinon cela peut prendre un drôle d'aspect.

    En espérant que cela serve ...
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  5. #5
    Membre expérimenté Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 340
    Points : 1 576
    Points
    1 576
    Par défaut
    Merci pour cette réponse...même tardive elle est la bienvenue
    Parce que ma solution à moi, je ne la trouve pas belle
    @ bientôt...

    Salut & @+ sur 3W!

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

Discussions similaires

  1. Adapter la largeur d'un texte à la largeur d'un conteneur
    Par Tristan Zwingelstein dans le forum Mise en page CSS
    Réponses: 14
    Dernier message: 11/12/2013, 19h59
  2. Adapter la largeur d'un texte à la resolution
    Par identifiant_bidon dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/08/2011, 16h30
  3. BCB6 mettre en surbrillance le texte
    Par winow dans le forum C++Builder
    Réponses: 8
    Dernier message: 08/10/2005, 22h13
  4. Adapter longueur d'un texte
    Par eidole62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 11/05/2005, 14h49
  5. Connaitre la largeur d'un texte en pixels sur un DC
    Par Harry_polin dans le forum Windows
    Réponses: 3
    Dernier message: 11/05/2004, 13h40

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