je voulai savoir comment l'on pour adapter la taille d'un bouton a son contenu, c'est à dire au caption qu'il a ( ce caption étant variable)?
Et aussi pour un stringgrid, comment on peut adapter la taille de la grille au nombre de cellules( ce nombre étant variable)., c'est à dire que je veux, si j'ai par ex 10*10 cellules pouvoir voir toutes ces cellules lors de l'execution.
Je conseille plutôt d'utiliser la fonction TextWidth( ) qui renvoie la
taille du texte en pixels dans la police en cours sur un canvas plutôt
que la méthode de sim51 : en effet, un 'i' n'aura pas la même largeur
qu'un 'm'
Button1.Width := Canvas.TextWidth('Mon nouveau Texte')+20; // +20 pour laisser un espace à droite et à gauche du texte
Le +4 s'explique par la prise en compte dans le calcul de la largeur de la bordure quand elle est normale ( bsSingle ) . Si on ne veut pas de bordure, autrement dit avec la propriété BorderStyle à bsNone, on peut faire plus simplement :
Salut,
Alors pour ton bouton c'est simple, tu peux connaitre la taille du text de ton bouton : length(bouton.caption) , de plus si tu connais la taille de ta police tu peux connaitre la taille d'un caractère et donc dimensionner la taille de ton bouton :
bouton.width:=longueur_caractere*length(bouton.caption)
De même pout ton stringGrid, tu peux connaitre le nombre le nombre de colonne et de ligne ( propriétés rowcont et colcount ) ainsi que la taille de chque colonne et ligne ( n'oublie pas la longueur des trait qui séparent les cellules ) et en applicant le même principe que pour le bouton, tu peux changer la taille de ton stringgrid pour qu'il apparaisse en entier.
stringgrid.width:=stringgrid.colcount*(longueur_colonne + stringgrid.gridlinewidth)
Bonne continuation.
N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
G fait ce que tu viens d'écrire, mais le problème comme je l'ai dis un peu plus haut c'est la taille de la grille, avec gridwidth et gridheigth, coment on peut modifier ses valeurs car il apparait un blanc.