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 :

Affichage de texte incomplet dans OnDrawItem [Non suivi]


Sujet :

C++Builder

  1. #1
    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 Affichage de texte incomplet dans OnDrawItem
    Bonjour et bonne année a tous,
    Cela fait bien longtemps que je n'avais pas pu revenir ici, cela me manquait...
    Petite question toute bête et bizarre a la fois, j'ai réinstallé mon builder sur un nouveau PC et repris mon 'travail', et j'ai un comportement bizarre sur un évènement des listbox et autres du même genre.
    J'ai du code dans le OnDrawItem pour afficher une couleur différente a une ligne sur deux, ou si la ligne est selectionnée, ou en fonction de certaines valeurs, etc...je passe les détails. Le souci est qu'aujourd'hui sur ce pc cela ne fonctionne plus.
    J'ai même repris les exemples trouvés ici ou la sur la FAQ ou autre, copié le code mais l'affichage du texte est toujours planté : soit rien, soit tout est comme écrit dans la première ligne.
    J'ai essayé 'TextOut', 'TextOutA', 'TextRect' de TCanvas mais rien de plus.
    Honnetement, etre planté pour un tel détail m'agace profondemment

    QQu'un a une bouée de sauvetage ?
    Merci d'avance,
    @ +

    NB : j'ai évidemment vérifié la propriété 'Style' de l'objet , par ex le listbox n'est pas en lbStandard...

  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
    Bonjour,

    Toujours de rien de neuf ....a noter que il n'y avait pas eu d'erreur lors de la réinstallation de Builder. Rien de particulier donc...

    Eventuellement, si qqu'un a des pistes a revérifier, même sur un problème matériel (on peut tout envisager, non ? ), je le remercie d'avance.

    @ +

  3. #3
    Membre expérimenté
    Avatar de Djob
    Inscrit en
    Août 2002
    Messages
    215
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 215
    Par défaut
    Salut Cantrelle,

    pourrait tu tester si ce code fonctionne chez toi (il fonctionne chez moi)
    avec juste une listbox (propriété Style=lbOwnerDrawFixed) dans une nouvelle application.

    Comme ça on saura si ça vient d'un probleme du programme ou d'un probleme spécifique à l'installation windows ou à l'installation builder ou d'un composant.



    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
    void __fastcall TForm1::ListBox1DrawItem(TWinControl *Control, int Index,
          TRect &Rect, TOwnerDrawState State)
    {
     
            if( (Index%2==0) && (!State.Contains(odSelected))){
               ListBox1->Canvas->Brush->Color=clYellow;
               ListBox1->Canvas->FillRect(Rect);
            }
            ListBox1->Canvas->TextRect(Rect,Rect.Left+2,Rect.top+2,ListBox1->Items->Strings[Index]);
     
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            ListBox1->Clear();
            for(int i=0;i<12;i++){
                    ListBox1->Items->Add("item"+IntToStr(i));
            }
    }
    //---------------------------------------------------------------------------

  4. #4
    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
    Salut Djob,

    Merci pour ta réponse....effectivement, alors qu'au départ même l'exemple basique de OnDrawItem de la FAQ ne marchais pas, tes qq lignes de code sont passées sans soucis sur la pluspart des TListBox du projet. (! )
    Bon, dans un sens tant mieux.
    Reste une TListBox présente dans une TFrame placée sur une fiche, qui elle reste hostile a toute tentative de 'dressage' ( ) quoi que ce soit que l'on y mette...une vrai petite rebelle.
    Je vais la virer, replacer une autre objet et rééssayer...

    Merci et a @ +

    NB: pendant que j'y repense, j'avais raté l'installation de la rxLib ( ) - dérangé par d'incessants coups de fils du boulot - et depuis d'ailleurs je n'ai pas encore retenté de l'installer a nouveau. C'est le seul 'plantage' qui avait eu lieu...

  5. #5
    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
    Je vais la virer, replacer une autre objet et rééssayer..
    A solution débile, resultat débile. La nouvelle TListBox sur la TFrame a le même comportement...

Discussions similaires

  1. [Lazarus] Collage de texte incomplet dans le RichEdit
    Par Ardely dans le forum Lazarus
    Réponses: 0
    Dernier message: 08/09/2010, 11h09
  2. affichage du texte brut dans une classe formulaire
    Par chezdevelopping dans le forum Zend_Form
    Réponses: 2
    Dernier message: 28/08/2009, 18h05
  3. [COM] Affichage de texte RTF dans une page web
    Par marieannette dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 24/02/2009, 10h03
  4. prob affichage mot en gras dans un texte
    Par klik dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 13/07/2005, 08h38
  5. Centrer un texte dans ListBox, dans OnDrawItem
    Par Sunchaser dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/03/2005, 01h46

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