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 :

Sizing de StringGrids


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut Sizing de StringGrids
    Bonjour,

    Je suis entrain de programmer le remplissage automatique de 2 StringGrids avec des infos textes de type "0xXX" ... (taille du texte en fonction du nombre d'octets qu'on lit sur le port COM1 via un autre PC qui est en mode émission de données).

    Mon problème se situe dans le sizing des tableaux. En effet, je souhaite avoir des tableaux qui se dimensionne en fonction de la longueur des infos que j'affiche.
    J'arrive correctement à définir la taille de la colonne nécessaire pour que le texte s'affiche avec suffisamment de place, cependant je souhaite limiter la taille globale des tableaux. En effet, si on reçoit 30 messages de types "0xXX", je voudrais que la taille du tableau se limite à une valeur max que je définis et qu'il me rajoute éventuellement une barre de défilement pour permettre à l'utilisateur de parcourir la totalité de la colonne par exemple.

    J'ai fait un printscreen du problème. On voit bien qu'on peut que lire les 16 premières infos et le premier 0 de la 17ème infos... Mon programme limite la taille du tableau à son max avec ceci:

    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
    #define CHARTS_WIDTH_MAX     500
    ...
    unsigned short int mg_length_cmd;
    unsigned short int mg_chart1Width;
    ...
    ...
    // AFFICHAGE DES DONNEES SUR LE TABLEAU
    ...
    mg_length_cmd = strngrd_table1->Canvas->TextWidth(strngrd_table1->Cells[1][mg_tab1_line]);
    ...
    strngrd_table1->ColWidths[1] = mg_length_cmd + 20;     // Rajout d'espace 
    ...
    mg_chart1Width = strngrd_table1->ColWidths[0] + strngrd_table1->ColWidths[1] + 15;
    if (mg_chart1Width < CHARTS_WIDTH_MAX)
    {
        strngrd_table1->Width = mg_chart1Width;
    }
    else
    {
        strngrd_table1->Width = CHARTS_WIDTH_MAX;
    }


    Merci de vos réponses
    Images attachées Images attachées  

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut gilles68
    Si je comprend bien ce que tu demande, tu devrais regarder du cote de la propriete ScrollBars et voir si elle est sur ssBoth

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    J'ai vérifié l'option du stringGrid et ce dernier est bien configuré en ScrollBar = ssBoth...

    J'ai tenté de rajouter une colonne et lors de la génération du tableau, la barre de défilement horizontale apparait. Je ne comprend pas très bien le problème...
    Si j'augmente la taille de la colonne qui contient le message, le tableau reste le même. Je pense que le re-sizing du tableau pose un soucis mais sans en savoir davantage.

    J'ai peut être un début de réponse: en mettant la valeur de FixedCols à 0 (précédemment à 1), la barre de défilement horizontale apparait mais pas avec le texte entier. Je continue de chercher

  4. #4
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    Il y a peut être une valeur dans les options du stringGrid à mettre à true ou false pour permettre le re-sizing. J'essaie de trouver ça ...

  5. #5
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Quel est ta version de Builder?
    J'ai vu ce problème sur un TRichEdit, et je l'ai "résolu" en utilisant un TMemo à la place. C'était avec BCB6 sur un PC portable avec XP.

    Donc, soit tu ré-installe Builder en croisant les doigts, soit tu utilises un autre composant.
    Par défaut, les propriétés sont bonne pour ce genre de problème, donc je n'ai malheureusement pas trop d'autre solution à te proposer.

  6. #6
    Membre du Club
    Inscrit en
    Octobre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 8
    Par défaut
    J'ai abandonné cette histoire de re-sizing du tableau et je me suis juste limité à une taille max pour la fenêtre et ça me convient à peu près.
    Merci pour vos réponse

Discussions similaires

  1. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 21h46
  2. StringGrid, multiligne et word wrap
    Par Dajon dans le forum C++Builder
    Réponses: 7
    Dernier message: 17/09/2003, 17h15
  3. Déplacer la sélection d'une ligne dans un stringgrid
    Par jer64 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 14/03/2003, 00h57
  4. Multi lignes dans un StringGrids ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 23h15
  5. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 11h35

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