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 :

La TStatusBar n'affiche pas tout mon texte


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut La TStatusBar n'affiche pas tout mon texte
    Bonjour,
    J'ai encore un petit probl�me.
    J'ai une statusbar qui dispose de 3 panels. Dans le 3�me panel, mon texte est assez long et n'est pas compl�tement �crit. J'ai essay� de mettre une grande valeur dans width du panel mais rien n'y fait.
    Mon code qui affiche le texte :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    StatusBar1->Panels->Items[2]->Text = "P : pause, S : vit -10%, Q : vit +10%, Z : vit - 0,5, A : vit + 0,5, Echap : fermer, 1 : plein écran, 0 : fenetré, -> : droite, <- : gauche, bas : arrière, haut : avant, shift : simx5, control : speedx5, control + bouton souris";
    Une petite image pour illustrer mon probl�me :


    Avez-vous une id�e pour r�soudre ce probl�me autre que de mettre un label dans ce panel?

    Merci d'avance

  2. #2
    Membre �prouv�
    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 : 54
    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
    Par d�faut
    Bonsoir,

    Je pense qu'il te faut :
    . mettre ton Panel en mode OwnerDraw
    . g�rer le dessin du panel:
    dans le OnDrawPanel du StatusBar:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    void __fastcall TForm1::StatusBar1DrawPanel(TStatusBar *StatusBar,
          TStatusPanel *Panel, const TRect &Rect)
    {
    switch (Panel->Index)
    {
    	case 2:
    		Panel->Width = StatusBar->Canvas->TextExtent(Panel->Text).cx + 2;
    			StatusBar->Canvas->TextRect(Rect, 1, 1, Panel->Text);
    	break;
    	default:
    	;
    }
    }
    En esp�rant t'aider,
    @ +

  3. #3
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 343
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 59
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 343
    Par d�faut
    Une piste � explorer... peut �tre d�bile...
    L'affichage s'arr�te bizarrement au 128�me caract�re. 128 est un nombre bien connu de la base 2 ( 2, 4, 8, 16, 32, 64, 128, 256....)

    Mais ce n'est qu'une piste...
    Je n'ai pas trouv� dans l'aide, un chapitre �voquant une quelconque limite, mais sait-on jamais ?

  4. #4
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut
    Merci pour la r�ponse et la solution.

    J'ai un probl�me assez s�rieux puisque je n'ai aucune solution pour le r�soudre.

    En essayant ta m�thode, j�ai l�erreur suivante :
    [C++ Erreur] Unit1.h(786): E2015 Ambigu�t� entre 'TRect' et 'Types::TRect'
    Or, dans l�aide, il est indiqu� que c�est un Types:: mais je ne peut pas rajouter Types:: � la d�claration car sinon C++Builder m�indique qu�elle n�est pas compatible avec l��v�nement de la statusbar.

    Sachant que le TRec vient du fichier SDL.hpp de GLScene, je ne peut pas m'en passez puisque je fais un �diteur pour GLScene.

    Une id�e?


  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 412
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Pourquoi ne pas rajouter un deuxi�me TStatusBar pour les libell�s des valeurs, donc avec autant de panels qu'il y a de valeurs ?
    Pour la pr�sentation, il suffit de supprimer le SizeGrip du TStatusBar portant les libell�s !

    C'est juste une id�e !

    A plus !

  6. #6
    Membre �clair�
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activit� : Consultant technique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Par d�faut
    Je ne comprend pas bien. Il faudrait mettre une statusbar � l'int�rieur d'une autre statusbar?

    J'ai essay� de mettre un TLabal et cela ne me convient pas.

    J'ai essay� d'ajouter le Types:: aux d�clarations et d'ignorer les messages d'erreur mais du coup, il ignore cette fonction.

    Je viens de trouver o� est cette limite (dans comctrls.pas) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    procedure TCustomStatusBar.UpdatePanels(UpdateRects, UpdateText: Boolean);
    const
      MaxPanelCount = 128;

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 26/05/2011, 14h38
  2. mon champs de formulaire n'affiche pas tout
    Par egelitros dans le forum Langage
    R�ponses: 2
    Dernier message: 06/05/2007, 11h03
  3. Applet n'affiche pas tout
    Par zespoofiz dans le forum Applets
    R�ponses: 1
    Dernier message: 23/05/2006, 15h17
  4. [SQL-Server] [MySQL] Le mssql_fetch_array() n'affiche pas tout
    Par PoZZyX dans le forum PHP & Base de donn�es
    R�ponses: 2
    Dernier message: 30/09/2005, 10h50
  5. [XSL]Comment faire ceci ?? Mon for-each n'affiche pas tout !
    Par Devil666 dans le forum XSL/XSLT/XPATH
    R�ponses: 4
    Dernier message: 27/07/2005, 15h04

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