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
Partager