Adaptation au contenu [Résolu]

Signaler
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005
-
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
-
Bonjour,

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.

7 réponses

Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
Pour la dimension du bouton :

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

Button1.Caption : = 'Mon nouveau Texte';



Pour la dimension de la StringGrid :

StringGrid1.Width : = StringGrid1.ColCount * (StringGrid1.DefaultColWidth + StringGrid1.GridLineWidth) +4;

StringGrid1.Height := StringGrid1.RowCount * (StringGrid1.DefaultRowHeight + StringGrid1.GridLineWidth) +4 ;

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 :

StringGrid1.Width : = StringGrid1.ColCount * (StringGrid1.DefaultColWidth + StringGrid1.GridLineWidth);


StringGrid1.Height := StringGrid1.RowCount * (StringGrid1.DefaultRowHeight + StringGrid1.GridLineWidth);


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">


N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !



Messages postés
240
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
31 décembre 2006
1
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 !!!
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

Le probleme quand je fais ca ( je parle du stringgrid), il y a des scrollbar qui apparaisse car il y a du blanc autour de la grille .
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

C en faite les valeurs de gridwidth et gridheigth qu'il faudrai modifier je pense mais elles sont en lecture seule
Messages postés
240
Date d'inscription
dimanche 31 octobre 2004
Statut
Membre
Dernière intervention
31 décembre 2006
1
Coucou ni69,

Merci d'amélirer mes solutions lol, je connaissais pas la fonction textwidth(), alors je fais avec ce que j'ai

Allez a++

N'oubliez pas de cliquer sur réponse acceptée si la réponse vous convient !!!
Messages postés
102
Date d'inscription
samedi 14 mai 2005
Statut
Membre
Dernière intervention
12 août 2005

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.
Messages postés
1418
Date d'inscription
samedi 12 juin 2004
Statut
Membre
Dernière intervention
5 juillet 2010
13
lol sim51



XgaletteX : Si tu ne veux aucun contour, mets la propriété BroderStyle à bsNone... et adapte avec le deuxième code que je t'ai donné

@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size="2" width="100%">


N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !